Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
- !Install pipes a remote script into a shell (curl | sh)
claude mcp add mcp -- npx -y @kaminari-ad/mcp{
"mcpServers": {
"mcp": {
"command": "npx",
"args": ["-y", "@kaminari-ad/mcp"],
"env": {
"KAMINARI_AD_API_KEY": "<kaminari_ad_api_key>"
}
}
}
}KAMINARI_AD_API_KEYResumen de MCP Servers
# `@kaminari-ad/mcp`
Official Model Context Protocol (MCP) server for [Kaminari Ad](https://kaminari.ad) — the ad verification platform from the team behind [Kaminari Click](https://kaminari.click).
Lets AI agents (Cursor, Claude Desktop, Cline, and any MCP-compatible client) launch scans, inspect results, manage campaigns and policies, and read alerts directly against your Kaminari Ad workspace via your API key.
[](https://www.npmjs.com/package/@kaminari-ad/mcp)
[](https://www.npmjs.com/package/@kaminari-ad/mcp)
[](LICENSE)
[](https://nodejs.org)
[](https://github.com/kaminari-ad/mcp/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/@kaminari-ad/mcp)
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.kaminari-ad/mcp)
## Install (one click)
### Cursor
<a href="https://kaminari.ad/mcp/install"><img alt="Install in Cursor" src="https://cursor.com/deeplink/mcp-install-dark.png" height="32" /></a>
What the server can do and how to connect any client: [Kaminari Ad MCP overview](https://kaminari.ad/mcp).
### Claude Desktop
[**Download `kaminari-ad-mcp.mcpb`**](https://github.com/kaminari-ad/mcp/releases/latest/download/kaminari-ad-mcp.mcpb) → double-click to install. Claude Desktop shows a config form for your API key.
### Claude Code (CLI)
```bash
claude mcp add kaminari-ad -- npx -y @kaminari-ad/mcp
export KAMINARI_AD_API_KEY=your-key
```
Full installation docs — see [Quick start](#quick-start) below.
---
## Quick start
### 1. Sign up & get an API key
1. Sign up at [https://app.kaminari.ad/signup](https://app.kaminari.ad/signup) (free tier, no card required).
2. Once signed in, go to **Settings → API Keys** and generate a new key, OR have an existing AI assistant (with a temporary login) call the [`create_api_key`](#tools) tool — both paths produce the same result.
3. The key is shown **once**. Copy it. The full key is hashed server-side immediately.
> Keys are opaque random strings — no required prefix or fixed length. Treat the whole value as a raw secret and paste it verbatim into your client config.
> Tip for evaluators / Anthropic Software Directory reviewers: ask the team at [hello@kaminari.ad](mailto:hello@kaminari.ad) for a sandboxed test account with seeded sample scans, campaigns, and alerts.
### 2a. Local install (stdio transport)
Add to your MCP client config (Cursor: `~/.cursor/mcp.json`; Claude Desktop: `~/Library/Application Support/Claude/claude_desktop_config.json`):
```jsonc
{
"mcpServers": {
"kaminari-ad": {
"command": "npx",
"args": ["-y", "@kaminari-ad/mcp"],
"env": {
"KAMINARI_AD_API_KEY": "<your-kaminari-ad-api-key>",
},
},
},
}
```
Restart your client. You should see `kaminari-ad` in the MCP servers list with 108 tools exposed.
### 2b. Hosted HTTP transport (no install)
For cloud agents or clients without a local Node runtime, point at the hosted endpoint:
```jsonc
{
"mcpServers": {
"kaminari-ad": {
"url": "https://mcp.kaminari.ad/mcp",
"headers": {
"Authorization": "Bearer <your-kaminari-ad-api-key>",
},
},
},
}
```
### 2c. OAuth 2.0 (Claude directory, third-party agents)
The hosted server publishes RFC 9728 protected-resource metadata at
[`https://mcp.kaminari.ad/.well-known/oauth-protected-resource`](https://mcp.kaminari.ad/.well-known/oauth-protected-resource)
and points at the Kaminari Ad Authorization Server
(`https://app.kaminari.ad`). Any unauthenticated request to `/mcp`
returns a `WWW-Authenticate: Bearer resource_metadata="…"` header so
spec-compliant MCP clients (Claude.ai, Claude Code, third-party
agents) can complete an OAuth 2.0 authorization-code flow with PKCE
S256 + Dynamic Client Registration (RFC 7591).
```bash
# Discovery — works without any credential
curl -sk https://mcp.kaminari.ad/.well-known/oauth-protected-resource
# Triggering the WWW-Authenticate hint
curl -isk https://mcp.kaminari.ad/mcp -X POST \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
```
**API keys remain the recommended path for CLIs and one-off
scripting** — OAuth is only for interactive agents that want per-app
consent and per-app revocation. Both Bearer flavours hit the same
`/mcp` endpoint; the server forwards the token verbatim to the API,
which decides which credential type minted it.
---
## Tools
109 tools covering the public `/api/v1` surface of Kaminari Ad. Every tool carries MCP behaviour annotations (`title`, `readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) so MCP clients can warn before destructive actions. The complete list, by domain:
- **Account** (14) — `get_account`, `update_org`, `list_org_users`, `invite_user`, `update_user_role`, `remove_user`, `transfer_ownership`, `list_org_roles`, `create_custom_role`, `list_account_labels`, `update_account_labels`, `list_api_keys`, `create_api_key`, `revoke_api_key`
- **Scans** (13) — `list_scans`, `get_scan`, `list_scan_children`, `create_scan`, `create_bulk_scans`, `recheck_scans`, `cancel_scan`, `get_scan_screenshot`, `get_scan_creative_screenshot`, `get_scan_landing_screenshot`, `get_scan_creative_html`, `get_scan_creative_video`, `get_scan_vast_xml`
- **Campaigns** (10) — `list_campaigns`, `list_campaigns_picker`, `get_campaign`, `create_campaign`, `update_campaign`, `archive_campaign`, `unarchive_campaign`, `cancel_campaign`, `run_campaign`, `list_campaign_runs`
- **Campaign groups** (10) — list/get/create/update/run/cancel/archive/unarchive + `pause_campaign_group_schedule`, `resume_campaign_group_schedule`
- **Runs** (3) — `get_run`, `list_run_scans`, `cancel_run` (use `list_campaign_runs` to enumerate runs of a campaign — the API has no standalone `/runs` index)
- **Tags** (5) — `list_tags`, `get_tag_definition`, `update_tag_definition`, `delete_tag_definition`, `list_scan_tags`
- **Custom rules** (7) — `list_custom_rules`, `get_custom_rule`, `create_custom_rule`, `update_custom_rule`, `delete_custom_rule`, `test_custom_rule`, `test_custom_rules_batch`
- **Custom taxonomies** (7) — `list_custom_taxonomies`, `get_custom_taxonomy`, `create_custom_taxonomy`, `update_custom_taxonomy`, `delete_custom_taxonomy`, `restore_custom_taxonomy`, `parse_custom_taxonomy_text`
- **Policy sets** (11) — `list_policy_sets`, `get_policy_set`, `create_policy_set`, `update_policy_set`, `delete_policy_set`, `request_policy_set_approval`, `unpublish_policy_set`, `set_default_policy_set`, `list_policy_set_campaigns`, `attach_policy_set_campaigns`, `detach_policy_set_campaigns`
- **Alerts** (4) — `list_alerts`, `update_alert_status`, `bulk_update_alert_status`, `get_alert_stats`
- **Webhooks** (11) — `list_webhooks`, `get_webhook`, `create_webhook`, `update_webhook`, `delete_webhook`, `list_webhook_event_types`, `list_webhook_deliveries`, `test_webhook`, `rotate_webhook_secret`, `replay_webhook_delivery`, `bulk_replay_webhook`
- **Billing** (4) — `get_billing_summary`, `list_usage`, `get_usage_summary`, `list_balance_history`
- **Invoicing** (2) — `list_invoices`, `get_invoice_pdf`
- **Alert notifications** (5) — `list_alert_destinations`, `delete_alert_destination`, `set_alert_destination_version`, `get_campaign_alert_overrides`, `set_campaign_alert_overrides`
- **Reference data** (3) — `list_geos`, `list_emulators`, `get_proxy_targeting`
Screenshots (`get_scan_screenshot`, `get_scan_creative_screenshot`, `get_scan_landing_screenshot`) come back as inline MCP `image` blocks; `get_invoice_pdf` and `get_scan_creative_video` as inline resource blocks — no second fetch, no presigned URL. The two text artifacts (`get_scan_creative_html`, `get_scan_vast_xml`) come back as strings the model can read directly. Every artifact download is size-capped in the gateway — 256 KiB for the text artifacts, 8 MiB for the binary ones — and refused while reading rather than buffered and then rejected.
Not exposed (intentionally): the public marketing forms, which are anonymous intake for kaminari.ad itself rather than an agent capability.
## Example agent prompts
These three prompts each exercise a different cross-section of tools and demonstrate the typical agent workflow:
1. **"Scan https://news.example.com/article-promo across US, UK, DE on mobile profiles, flag anything that redirects to a paywall."** Touches `list_emulators` → `create_bulk_scans` → wait → `list_scans` (status=completed) → `get_scan` → `list_scan_tags`.
2. **"Create a campaign that re-checks the homepage of brand-x.com every hour from JP and US; alert me on Slack if it ever shows a malware tag."** Touches `list_emulators` → `list_policy_sets` (find one with `malware`) → `create_campaign` (schedule_enabled=true) → `attach_policy_set_campaigns` → `list_alert_destinations` → `set_campaign_alert_overrides` (`mode: "override"` with the Slack destination).
3. **"What did I spend on ad verification last month, and which campaigns drove the cost?"** Touches `get_usage_summary` → `list_usage` (with date_from/date_to) → group by `scan_id` → `get_scan` → `get_campaign` for attribution.
Full machine-readable tool listing is exposed by the server itself — connect with any MCP client and call `tools/list`.
---
## Security & tenant isolation
The hosted HTTP endpoint serves many organizations from a single process. We take cross-tenant isolation very seriously:
- The MCP server is a strict, stateless, per-request pass-through. It forwards your `Authorization` header to the Kaminari Ad API verbatim and stores no per-tenant state beLo que la gente pregunta sobre mcp
¿Qué es kaminari-ad/mcp?
+
kaminari-ad/mcp es mcp servers para el ecosistema de Claude AI. Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-10-04.
¿Cómo se instala mcp?
+
Puedes instalar mcp clonando el repositorio (https://github.com/kaminari-ad/mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar kaminari-ad/mcp?
+
Nuestro agente de seguridad ha analizado kaminari-ad/mcp y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene kaminari-ad/mcp?
+
kaminari-ad/mcp es mantenido por kaminari-ad. La última actividad registrada en GitHub es del 2026-10-04, con 0 issues abiertos.
¿Hay alternativas a mcp?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega mcp en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/kaminari-ad-mcp)<a href="https://claudewave.com/repo/kaminari-ad-mcp"><img src="https://claudewave.com/api/badge/kaminari-ad-mcp" alt="Featured on ClaudeWave: kaminari-ad/mcp" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
The fastest path to AI-powered full stack observability, even for lean teams.