← Back to search

@kaminari-ad/mcp

GitHub Actions Scanned 23d ago

Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.

npm
? Not scanned yet

Versions

0.11.0latest
Jul 28, 2026
0.10.0
Jul 28, 2026
0.9.1
Jul 21, 2026
0.9.0
Jul 21, 2026
0.8.0
Jul 10, 2026
+ show 11 moreshow less
0.7.2
Jul 10, 2026
0.6.0
Jun 30, 2026
0.5.2
Jun 20, 2026
0.5.0
Jun 17, 2026
0.4.0
Jun 4, 2026
0.3.0
May 20, 2026
0.2.2
May 20, 2026
0.2.1
May 18, 2026
0.2.0
May 17, 2026
0.1.5
May 17, 2026
0.1.0
May 17, 2026

Tools 98

update_alert_status
annotations: none low

Update an alert's status in its lifecycle: open → escalated → resolved | dismissed. The API enforces valid transitions; an invalid one returns 422.

unarchive_campaign
annotations: none low

Restore an archived campaign. Inverse of `archive_campaign`. The campaign re-appears in default lists; if `schedule_enabled` was true, the scheduler resumes producing runs.

get_alert_stats
annotations: none low

Get alert counts grouped by status: open, escalated, resolved, dismissed. Counts cover the caller's organization over all time and are not filtered, so the four sum to the `total` an unfiltered `list_alerts` reports. Status names match the canonical AlertStatus enum used by `list_alerts` and `update_alert_status`.

list_alerts
annotations: none low

List violation alerts (one per scan + violating rule combo) with offer URL, country, status, scan back-reference, and the kind-aware fields `rule_type` (tag / iab_v3 / brand / ai_category / custom_taxonomy) + `matched_value` (the canonical text the scan matched against).

list_org_roles
annotations: none low

List the roles defined for the organization — built-in (owner, admin, member) plus any custom roles, with each role's permission set.

update_org
annotations: none low

Update the caller's organization display name.

create_custom_role
annotations: none low

Create a custom organization role with the supplied permission set. Returns the persisted role; assign it to users via `update_user_role`.

transfer_ownership
annotations: none low

Hand the organization owner role to another existing member. ONE-WAY: the previous owner becomes a regular member afterwards. Require explicit confirmation from the user.

get_account
annotations: none low

Get the organization owning the current API key (id, name, owner_id, is_active, created_at). Use this to confirm authentication and capture the org context for follow-up tool calls.

list_org_users
annotations: none low

List every member of the caller's organization with their role, ownership flag, and join date.

list_api_keys
annotations: none low

List the organization's API keys: id, key prefix (first 8 chars of the secret), display name, expiry, created_at. The full secret is NEVER returned by this endpoint — only the prefix.

revoke_api_key
annotations: none low

Permanently invalidate an API key. Any subsequent request using it returns 401. Cannot be undone — the user would have to `create_api_key` again.

create_api_key
annotations: none low

Mint a new API key for the caller's organization. The full secret is returned in `full_key` THIS ONE TIME ONLY — show it to the user and instruct them to store it; the server keeps only a hash and cannot reveal it again.

list_account_labels
annotations: none low

List the organization's custom label definitions (key, display_name, position, auto_extract). Labels enrich scans and can be used as filters in `list_scans`.

update_user_role
annotations: none low

Change an organization member's role. The owner role can only be transferred via `transfer_ownership`. Returns `{updated: true}` on success; refetch with `list_org_users` if you need the new role echoed.

remove_user
annotations: none low

Revoke a member's access to the organization. The user is signed out and any active API keys they created remain unless revoked separately. CANNOT remove the owner — use `transfer_ownership` first.

update_account_labels
annotations: none low

REPLACE the organization's full set of custom label definitions. The API replaces the list (no merge); read the current list with `list_account_labels` first. Returns the persisted list with allocated positions.

invite_user
annotations: none low

Send an invitation email so a new person can join the caller's organization with a chosen role. Returns the pending member record.

list_campaigns
annotations: none low

List campaigns for the caller's organization, optionally filtered by group, archived flag, or name substring. Paginated. Each row carries the same fields as `get_campaign`, including the repeat / retry settings (`repeat_count`, `repeat_mode`, `retry_max_attempts`) — use them to spot the campaigns that multiply their per-run scan count.

update_campaign
annotations: none low

Update one or more fields of a campaign. Fields not supplied are left unchanged. `policy_set_id` accepts null to clear the binding, and `referrer` accepts null to clear the publisher page scans are checked from.

run_campaign
annotations: none low

Trigger an immediate, ad-hoc run of a campaign. Costs N credits where N = number of countries × number of emulators in the campaign config. Returns the new run with progress counters (total / completed / failed / partial / cancelled); track further progress via `get_run`.

list_campaign_runs
annotations: none low

List every run (scheduled execution) of one campaign, paginated, with per-run counters.

list_campaigns_picker
annotations: none low

Slim per-row campaign list for selection UIs — id, name, group_id, is_archived. Cheaper than `list_campaigns` for orgs with thousands of campaigns. Use `get_campaign(id)` after a selection to fetch full details.

create_campaign
annotations: none low

Create a recurring scan campaign (template). The schedule produces N scans per run where N = number of countries times number of device profiles times `repeat_count`. Scans cost credits when they run, not when the campaign is created, so a high `repeat_count` multiplies the bill on every run. The returned campaign echoes `repeat_count`, `repeat_mode`, and `retry_max_attempts`, so read it back to confirm what the campaign will do.

cancel_campaign
annotations: none low

Cancel every pending scan across all unfinished runs of a campaign. Running scans complete normally; pending scans are marked cancelled and credits refunded. Returns count of cancelled scans.

get_campaign
annotations: none low

Get one campaign by UUID: name, type (url|ad_tag|vast|ad_discovery), target URL / ad-tag / VAST tag (vast_tag), countries, emulator selection, proxy targeting, schedule status, archive status, parent group. Also echoes the repeat / retry settings — `repeat_count`, `repeat_mode`, `retry_max_attempts` — so this is how you confirm what `create_campaign` or `update_campaign` actually saved, and how many scans a run will produce (countries x device profiles x `repeat_count`). `ad_discovery` campaigns store the publisher page in the URL field.

archive_campaign
annotations: none low

Soft-delete (archive) a campaign. Removes it from default lists and stops the scheduler; previously-collected scans are preserved.

get_policy_set
annotations: none low

Get one policy set by UUID with its complete list of entries (each entry is one of five rule kinds — tag / iab_v3 / brand / ai_category / custom_taxonomy — plus applicable country codes).

list_policy_sets
annotations: none low

Paginated list of policy sets: named collections of violation rules (tag / IAB V3 / brand / AI category / custom-taxonomy entries) that define what counts as a violation. Campaigns bind to one policy set. Returns `{items, total, page, limit}`. List items omit `entries` for payload size — fetch a single set via `get_policy_set` when you need them. Use `visibility=public` to discover Kaminari Ad-curated sets.

create_policy_set
annotations: none low

Create a new policy set (named collection of violation rules). Each rule is one of: tag slug, IAB V3 category prefix, advertiser brand, freeform AI category, or per-org custom-taxonomy node. Bind campaigns to the set via `update_campaign`.

update_policy_set
annotations: none low

REPLACE a policy set's name, description, and entry list. The API requires all three fields on every update — read the current set with `get_policy_set` first if you only want to change one thing. Supports all five rule kinds (tag / iab_v3 / brand / ai_category / custom_taxonomy).

delete_policy_set
annotations: none low

Permanently delete a policy set. IMPORTANT: API returns HTTP 400 if any active campaign is still bound to this set. To unbind first, call `list_campaigns` with a `policy_set_id` filter (when available) or scan your campaigns for matches, then `update_campaign` for each match setting `policy_set_id=null`, then retry delete. Alerts created under this set persist (their `policy_set_id` becomes `null`).

request_policy_set_approval
annotations: none low

Submit a private policy set for Kaminari Ad team review so it can be marked PUBLIC and used by other organizations. The set must be complete and well-formed. Returns immediately; approval status is reflected on the policy set entity once the review completes.

run_campaign_group
annotations: none low

Fire an immediate run of every active (non-archived, non-paused) campaign in the group. Returns aggregate stats: how many campaigns triggered, the per-campaign run UUIDs, and any per-campaign failures.

get_campaign_group
annotations: none low

Get one campaign group by UUID with default/archive/pause flags and campaign count.

create_campaign_group
annotations: none low

Create a new campaign group (folder). Free operation, no scans queued.

pause_campaign_group_schedule
annotations: none low

Pause the scheduler for EVERY campaign in the group. Already-pending scans complete; no new scheduled runs are produced until you `resume_campaign_group_schedule`.

unarchive_campaign_group
annotations: none low

Restore an archived campaign group and re-expose its campaigns in default lists.

cancel_campaign_group
annotations: none low

Cancel every pending scan across every campaign in the group. Refunds credits for cancelled scans. Returns the total cancelled count.

update_campaign_group
annotations: none low

Rename a campaign group. To pause/resume its scheduler, use `pause_campaign_group_schedule` / `resume_campaign_group_schedule` instead.

resume_campaign_group_schedule
annotations: none low

Re-enable the scheduler for every campaign in the group. Inverse of `pause_campaign_group_schedule`.

archive_campaign_group
annotations: none low

Soft-delete the group AND every campaign in it. The default group cannot be archived; ask the user to move campaigns out first.

list_campaign_groups
annotations: none low

List campaign groups — folders that group related campaigns. Includes per-group campaign count. Not paginated; the org-scoped list is typically small (a few dozen groups max).

list_balance_history
annotations: none low

List ledger transactions (charges, refunds, top-ups, invoice settlements) on the organization's balance. Each row: type, amount in micros, description, timestamp. Filter by `type` (multi-select) and / or date range.

list_usage
annotations: none low

List per-scan usage rows (cost in micros, kind, scan id, timestamp). Use to attribute cost to specific scans or campaigns.

get_usage_summary
annotations: none low

Get a one-liner aggregate of usage for the current billing period: total cost (micros), check count, period start/end.

get_billing_summary
annotations: none low

Get the organization's billing snapshot: balance (in micros), current plan, period usage counters, suspension state, and whether new scans are accepted right now.

cancel_scan
annotations: none low

Cancel one pending scan by UUID. Already-running or completed scans are no-ops. Cancellation refunds the scan credit.

list_emulators
annotations: none low

List every device/OS emulator profile available for scans (id, display name, category, browser). For `create_scan`, use the `id` as `emulator_id`. For `create_campaign` / `update_campaign`, use the `category` in `emulator_categories` or the `id` in `emulator_specific_ids`.

get_custom_taxonomy
annotations: none low

Get one custom taxonomy by UUID with its full node tree (each node has id, parent_id, level, position, name, description, is_default).

restore_custom_taxonomy
annotations: none low

Re-activate a previously soft-deleted custom taxonomy. Returns the restored taxonomy with its full tree (is_active=true).

create_custom_taxonomy
annotations: none low

Create a custom classification taxonomy with its initial tree. Exactly one node should have is_default=true (fallback for scans the LLM cannot classify confidently). Returns the persisted taxonomy with allocated node UUIDs and version=1.

update_custom_taxonomy
annotations: none low

REPLACE a custom taxonomy's name, description, and full tree atomically. The API bumps `version` on every successful update; ongoing scan classifications continue with the previous tree until they finish, so updates are safe but not retroactive.

list_custom_taxonomies
annotations: none low

List the calling org's custom classification taxonomies. Returns slim summaries (id, name, slug, version, node_count, is_active). Soft-deleted taxonomies are included with `is_active=false`. Fetch the full tree via `get_custom_taxonomy`.

delete_custom_taxonomy
annotations: none low

Soft-delete a custom taxonomy (sets is_active=false). Historical scan classifications keep referencing the id; new scans skip this taxonomy. Use `restore_custom_taxonomy` to undo.

parse_custom_taxonomy_text
annotations: none low

Preview-parse pasted free-form text into a taxonomy tree (NOT persisted). Returns `nodes: [{level, name, description}]` + `warnings: string[]`. After review, persist via `create_custom_taxonomy` (remember to flag exactly one node as is_default).

list_invoices
annotations: none low

List invoices issued to the organization with number, type, status, total in micros, currency, due/paid dates. Filter by `type` and / or `status`. Use `get_invoice_pdf` to download the PDF for a specific invoice.

get_invoice_pdf
annotations: none low

Download one invoice as an inline PDF (base64-encoded). Returned as a single MCP resource content block — agents can save / forward it without a second API call.

list_scans
annotations: none low

List scans for the caller's organization with optional filters (status, country, URL substring, date range, run/campaign/group, tag, AI/IAB/brand category, dynamic labels). Returns a paginated envelope; each brief carries `is_ad_tag` and `is_vast` flags, an absolute screenshot URL plus report_url (auth dashboard) and public_report_url (shareable) deep-links — link users with those, never hand-build URLs. Repeated scans look like near-duplicate rows: `repeat_index` / `repeat_total` place each one inside its repeat group (0-based) and a non-null `repeat_session_id` means the group ran in `shared` mode (one browser, one IP, cookies carried across repeats) — group by it to compare the repeats of one combination. `retry_attempt` / `retry_max_attempts` count technical re-crawls of that same scan, not extra scans. `repeat_scan_ids` is not part of this response; use `get_scan` for a single scan's full detail.

list_scan_children
annotations: none low

List the discovered-ad child scans of a publisher ad-discovery scan — one per detected ad block on the page. Each child brief carries ad_kind (banner|pop), the attributed ad network, and slot_index. The repeat / retry fields are present but never meaningful here: a child is always its own group of one (`repeat_index` 0, `repeat_total` 1, `repeat_session_id` null) and is never re-crawled, because repeats and retries apply to the publisher scan — repeating an ad-discovery scan gives you several parents, each with its own children. Returns a paginated envelope with screenshot + report deep-links; link users with those, never hand-build URLs.

create_scan
annotations: none low

Queue a single new scan for a URL, ad-tag, or VAST video tag against one country. Takes one target and one country — there is no multi-URL form; call it once per URL. COSTS CREDITS and bills the caller's organization: this call creates exactly `repeat_count` scans (default 1) and bills every one of them. Returns the newly-created scan record; when `repeat_count` > 1 the response's `repeat_scan_ids` lists the sibling scans this call also created.

create_bulk_scans
annotations: none low

Queue one new scan per country in a single call (e.g. test the same URL, ad-tag, or VAST video tag from US + DE + JP). COSTS N CREDITS where N = number of countries times `repeat_count`. Returns one entry per country; each entry's `repeat_scan_ids` lists that country's extra repeats.

get_scan
annotations: none low

Get full detail for one scan by UUID: status, offer URL, absolute screenshot URL, report_url + public_report_url deep-links, timing, labels, and the parent campaign if any. VAST video scans also carry `vast_tag`, `creative_kind` (`banner` or `video` today; treat it as an open string), and a `video` block (duration, media-file URL, the creative's `click_through` destination, VAST version, ad system, VPAID flag, wrapper depth). Repeats and retries: `repeat_index` / `repeat_total` place this scan inside its repeat group (0-based, so 2 of 5 reads as repeat_index 1), a non-null `repeat_session_id` means the group ran in `shared` mode (same browser, same IP, cookies carried over) and is the key to correlate its members — a shared group of one has nothing to carry over, so it stays null — `repeat_scan_ids` is filled only on the create response, and `retry_attempt` / `retry_max_attempts` show how many technical re-crawls this scan already consumed. Link users with the returned `report_url` / `public_report_url` — never construct URLs yourself.

get_scan_creative_screenshot
annotations: none low

Fetch the creative screenshot for an ad-tag scan as an inline image (base64-encoded PNG). Returns 404 if the scan is not an ad-tag scan or has no creative captured yet.

get_scan_landing_screenshot
annotations: none low

Fetch the screenshot of one landing tab on an ad-tag scan as an inline image. Use `get_scan` first to discover available `landings[*].ord` values.

recheck_scans
annotations: none low

Re-run the checker pipeline against recent COMPLETED scans (e.g. after updating policies or custom rules). Returns the number of scans queued for re-evaluation. No new crawl fee — only the checker cost.

get_scan_screenshot
annotations: none low

Fetch the primary screenshot for a scan as an inline image (base64-encoded PNG). Pass `width` to request a resized version (50-2000 px). Returns one MCP image content block.

update_tag_definition
annotations: none low

Update display fields of a CUSTOM tag (system tags are read-only). Only supplied fields are touched. To read the updated definition, follow up with `get_tag_definition`.

list_scan_tags
annotations: none low

List every tag (system + custom) attached to one scan by the checker pipeline, with display name, category, and severity.

list_tags
annotations: none low

List every tag definition the platform knows (system tags + organization custom tags) with category, severity, visibility, and usage counters (scans + rules per tag). Optionally filter by category.

get_tag_definition
annotations: none low

Get full definition of one tag: display name, description, severity, category, source (system vs custom), public-report visibility, usage counts, plus `linked_rules` — the custom rules currently producing this tag (id, name, active flag). Fetch a specific rule's full config via `get_custom_rule`.

delete_tag_definition
annotations: none low

Delete a CUSTOM tag definition. Historical tag assignments are preserved; future scans will not receive this tag. System tags cannot be deleted.

test_custom_rule
annotations: none low

Preview-test a rule definition against a stored scan without persisting it. For `regexp_request_url`, the historical snapshot contains main-frame hops plus at most 200 persisted subrequests with selected resource types omitted, so a no-match does not prove the original fresh scan lacked the request. Returns match state, elapsed time, and per-tag detail; the preview response does not expose the matched request URL separately. Slug-collision validation does not run in preview mode.

list_custom_rules
annotations: none low

Paginated list of the organization's custom tag-detection rules (regex / heuristics) with their config, target, and active flag. Returns `{items, total, page, limit}`. To iterate: there is a next page iff `page * limit < total` (or equivalently `items.length === limit` until the last page). `page` is 1-indexed.

get_custom_rule
annotations: none low

Get one custom rule by UUID with name, tag-slug, type, config object, target, active flag.

create_custom_rule
annotations: none low

Define a custom tag-detection rule. Use `rule_type='regexp_request_url'` to match captured network and subresource URLs on the fixed `page` target; fresh scans carry up to 5,000 URLs, while later tests/rechecks use a reduced persisted request tree and are best-effort. `rule_type='regexp_url'` remains redirect-chain-only. The API auto-registers a tag definition for each emitted slug and rejects built-in system-slug collisions with HTTP 422 / `checking.system_slug_reserved`. Matches tag future scans; existing scans are untouched until `recheck_scans`.

update_custom_rule
annotations: none low

Update a custom tag-detection rule. Only supplied fields are sent, but `config` replaces the stored object wholesale; read the rule first and resend every required key. `regexp_request_url` needs a non-empty pattern (max 4,096), flags `''`/`'i'`, and the fixed `page` target. Same-slug GLOBAL rule edits preserve separately managed tag metadata; use `update_tag_definition` to change it. Existing scans are not re-evaluated until `recheck_scans`.

delete_custom_rule
annotations: none low

Permanently delete a custom rule. Already-applied tags on past scans are preserved; the rule simply stops running on future scans.

delete_webhook
annotations: none low

Unregister a webhook endpoint. No further events are delivered; in-flight retries are dropped. Past delivery history is preserved.

get_webhook
annotations: none low

Get one webhook endpoint by UUID with URL, subscribed event types, active flag.

list_webhook_event_types
annotations: none low

List the catalog of event types a webhook can subscribe to (e.g. `scan.done`, `alert.opened`, `campaign.run.completed`) with each event's description and a sample payload.

replay_webhook_delivery
annotations: none low

Queue a re-attempt for one specific webhook-delivery attempt by id. Useful when an endpoint was temporarily down. Result of the replay shows up as a new entry in `list_webhook_deliveries`.

create_webhook
annotations: none low

Register a webhook endpoint for the chosen event types. Response is a `{ webhook, secret }` envelope — the HMAC-SHA256 SIGNING SECRET is returned once and the caller MUST store it to verify event signatures.

update_webhook
annotations: none low

Update a webhook endpoint's URL, event-type subscriptions, and/or active flag. Signing secret is NOT rotated by this call — use `rotate_webhook_secret` for that.

list_webhooks
annotations: none low

List the organization's registered webhook endpoints with their URL, subscribed event types, and active flag.

rotate_webhook_secret
annotations: none low

Generate a new signing secret for a webhook. The new secret is returned IN FULL once — tell the user to store it. Subsequent deliveries are signed with the new secret; the old one stops working immediately.

test_webhook
annotations: none low

Dispatch a synthetic event with the sample payload for the given `event_type` to the webhook endpoint and return the receiver's response synchronously. Includes HTTP status, elapsed time, and a snippet of the response body so the operator can diagnose receiver bugs.

bulk_replay_webhook
annotations: none low

Replay every delivery attempt for this webhook endpoint that landed in [from_ts, to_ts). Returns `{ replayed, skipped }` counts. Use to recover after a downstream outage — every event in the window is re-fired.

list_webhook_deliveries
annotations: none low

List delivery attempts for one webhook endpoint with event type, status (pending / delivered / failed), HTTP response status if any, and attempt timestamp. Filter by `success` and / or a `from_ts` / `to_ts` range. Paginated.

list_run_scans
annotations: none low

List the tile-scan items produced by one run (status, country, offer URL, absolute screenshot URL, report_url + public_report_url deep-links, elapsed ms, error). Link users to a scan with the returned `report_url` (auth dashboard) or `public_report_url` (shareable) — never hand-build URLs. For full scan details (input URL, labels, classification, redirect chain) fetch a specific scan via `get_scan`.

cancel_run
annotations: none low

Cancel every pending scan within one run. Running scans complete; pending ones get refunded. Returns the count of cancelled scans.

get_run
annotations: none low

Get one run by UUID with totals (queued, completed, failed, partial, cancelled), parent campaign, label, source.

delete_alert_destination
annotations: none low

Remove an alert-notification destination. The org stops receiving pings on this channel immediately; campaign-level overrides referencing it are pruned.

get_campaign_alert_overrides
annotations: none low

Get the per-campaign override of which alert destinations receive its alerts. `mode` is one of `inherit` (use org defaults), `include` (use the listed destinations), or `exclude` (use everything EXCEPT the listed destinations).

set_alert_destination_version
annotations: none low

Switch a destination to a specific versioned config — used after re-authorizing a Slack workspace, rotating a Telegram bot token, etc. The new version must already exist in the destination's history. The API returns no body on success; this tool reports `{ updated: true }`. Use `list_alert_destinations` to read the new state if needed.

list_alert_destinations
annotations: none low

List configured alert-notification destinations (channels): Slack workspaces, Telegram chats, email lists, generic webhooks. Each entry has id, kind, display name, version, and creation timestamp.

set_campaign_alert_overrides
annotations: none low

REPLACE the per-campaign alert-routing override. `mode=inherit` falls back to org defaults; `mode=include` routes ONLY to the listed destinations; `mode=exclude` routes everywhere EXCEPT the listed destinations. To read the new state, follow up with `get_campaign_alert_overrides`.

list_geos
annotations: none low

List every country the Kaminari Ad platform can scan ads from, with ISO 3166-1 alpha-2 code, name, continent, and emoji.

Permissions 3

network medium
Server uses network capabilities via: fetch()
shell high
Server uses shell capabilities via: child_process, spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 207

low
Tool 'update_alert_status' has no annotations annotation_checker · 100%
low
Tool 'get_alert_stats' has no annotations annotation_checker · 100%
low
Tool 'list_alerts' has no annotations annotation_checker · 100%
low
Tool 'list_org_roles' has no annotations annotation_checker · 100%
low
Tool 'update_org' has no annotations annotation_checker · 100%
low
Tool 'create_custom_role' has no annotations annotation_checker · 100%
low
Tool 'transfer_ownership' has no annotations annotation_checker · 100%
low
Tool 'get_account' has no annotations annotation_checker · 100%
low
Tool 'list_org_users' has no annotations annotation_checker · 100%
low
Tool 'list_api_keys' has no annotations annotation_checker · 100%
low
Tool 'revoke_api_key' has no annotations annotation_checker · 100%
low
Tool 'create_api_key' has no annotations annotation_checker · 100%
low
Tool 'list_account_labels' has no annotations annotation_checker · 100%
low
Tool 'update_user_role' has no annotations annotation_checker · 100%
low
Tool 'remove_user' has no annotations annotation_checker · 100%
low
Tool 'update_account_labels' has no annotations annotation_checker · 100%
low
Tool 'invite_user' has no annotations annotation_checker · 100%
low
Tool 'list_campaigns' has no annotations annotation_checker · 100%
low
Tool 'update_campaign' has no annotations annotation_checker · 100%
low
Tool 'run_campaign' has no annotations annotation_checker · 100%
low
Tool 'list_campaign_runs' has no annotations annotation_checker · 100%
low
Tool 'list_campaigns_picker' has no annotations annotation_checker · 100%
low
Tool 'create_campaign' has no annotations annotation_checker · 100%
low
Tool 'cancel_campaign' has no annotations annotation_checker · 100%
low
Tool 'unarchive_campaign' has no annotations annotation_checker · 100%
low
Tool 'get_campaign' has no annotations annotation_checker · 100%
low
Tool 'archive_campaign' has no annotations annotation_checker · 100%
low
Tool 'get_policy_set' has no annotations annotation_checker · 100%
low
Tool 'list_policy_sets' has no annotations annotation_checker · 100%
low
Tool 'create_policy_set' has no annotations annotation_checker · 100%
low
Tool 'update_policy_set' has no annotations annotation_checker · 100%
low
Tool 'delete_policy_set' has no annotations annotation_checker · 100%
low
Tool 'request_policy_set_approval' has no annotations annotation_checker · 100%
low
Tool 'run_campaign_group' has no annotations annotation_checker · 100%
low
Tool 'get_campaign_group' has no annotations annotation_checker · 100%
low
Tool 'create_campaign_group' has no annotations annotation_checker · 100%
low
Tool 'pause_campaign_group_schedule' has no annotations annotation_checker · 100%
low
Tool 'unarchive_campaign_group' has no annotations annotation_checker · 100%
low
Tool 'cancel_campaign_group' has no annotations annotation_checker · 100%
low
Tool 'update_campaign_group' has no annotations annotation_checker · 100%
low
Tool 'resume_campaign_group_schedule' has no annotations annotation_checker · 100%
low
Tool 'archive_campaign_group' has no annotations annotation_checker · 100%
low
Tool 'list_campaign_groups' has no annotations annotation_checker · 100%
low
Tool 'list_balance_history' has no annotations annotation_checker · 100%
low
Tool 'list_usage' has no annotations annotation_checker · 100%
low
Tool 'get_usage_summary' has no annotations annotation_checker · 100%
low
Tool 'get_billing_summary' has no annotations annotation_checker · 100%
low
Tool 'list_emulators' has no annotations annotation_checker · 100%
low
Tool 'get_custom_taxonomy' has no annotations annotation_checker · 100%
low
Tool 'restore_custom_taxonomy' has no annotations annotation_checker · 100%
low
Tool 'create_custom_taxonomy' has no annotations annotation_checker · 100%
low
Tool 'update_custom_taxonomy' has no annotations annotation_checker · 100%
low
Tool 'list_custom_taxonomies' has no annotations annotation_checker · 100%
low
Tool 'delete_custom_taxonomy' has no annotations annotation_checker · 100%
low
Tool 'parse_custom_taxonomy_text' has no annotations annotation_checker · 100%
low
Tool 'list_invoices' has no annotations annotation_checker · 100%
low
Tool 'get_invoice_pdf' has no annotations annotation_checker · 100%
low
Tool 'list_scans' has no annotations annotation_checker · 100%
low
Tool 'list_scan_children' has no annotations annotation_checker · 100%
low
Tool 'create_scan' has no annotations annotation_checker · 100%
low
Tool 'create_bulk_scans' has no annotations annotation_checker · 100%
low
Tool 'get_scan' has no annotations annotation_checker · 100%
low
Tool 'get_scan_creative_screenshot' has no annotations annotation_checker · 100%
low
Tool 'cancel_scan' has no annotations annotation_checker · 100%
low
Tool 'get_scan_landing_screenshot' has no annotations annotation_checker · 100%
low
Tool 'recheck_scans' has no annotations annotation_checker · 100%
low
Tool 'get_scan_screenshot' has no annotations annotation_checker · 100%
low
Tool 'update_tag_definition' has no annotations annotation_checker · 100%
low
Tool 'list_scan_tags' has no annotations annotation_checker · 100%
low
Tool 'list_tags' has no annotations annotation_checker · 100%
low
Tool 'get_tag_definition' has no annotations annotation_checker · 100%
low
Tool 'delete_tag_definition' has no annotations annotation_checker · 100%
low
Tool 'test_custom_rule' has no annotations annotation_checker · 100%
low
Tool 'list_custom_rules' has no annotations annotation_checker · 100%
low
Tool 'get_custom_rule' has no annotations annotation_checker · 100%
low
Tool 'create_custom_rule' has no annotations annotation_checker · 100%
low
Tool 'update_custom_rule' has no annotations annotation_checker · 100%
low
Tool 'delete_custom_rule' has no annotations annotation_checker · 100%
low
Tool 'delete_webhook' has no annotations annotation_checker · 100%
low
Tool 'get_webhook' has no annotations annotation_checker · 100%
low
Tool 'list_webhook_event_types' has no annotations annotation_checker · 100%
low
Tool 'replay_webhook_delivery' has no annotations annotation_checker · 100%
low
Tool 'create_webhook' has no annotations annotation_checker · 100%
low
Tool 'update_webhook' has no annotations annotation_checker · 100%
low
Tool 'list_webhooks' has no annotations annotation_checker · 100%
low
Tool 'rotate_webhook_secret' has no annotations annotation_checker · 100%
low
Tool 'test_webhook' has no annotations annotation_checker · 100%
low
Tool 'bulk_replay_webhook' has no annotations annotation_checker · 100%
low
Tool 'list_webhook_deliveries' has no annotations annotation_checker · 100%
low
Tool 'list_run_scans' has no annotations annotation_checker · 100%
low
Tool 'cancel_run' has no annotations annotation_checker · 100%
low
Tool 'get_run' has no annotations annotation_checker · 100%
low
Tool 'delete_alert_destination' has no annotations annotation_checker · 100%
low
Tool 'get_campaign_alert_overrides' has no annotations annotation_checker · 100%
low
Tool 'set_alert_destination_version' has no annotations annotation_checker · 100%
low
Tool 'list_alert_destinations' has no annotations annotation_checker · 100%
low
Tool 'set_campaign_alert_overrides' has no annotations annotation_checker · 100%
low
Tool 'list_geos' has no annotations annotation_checker · 100%
medium
OAuth implementation without PKCE auth_checker · 75%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
package.json metadata manifest_parser · 100%
info
Tool: update_alert_status manifest_parser · 90%
info
Tool: get_alert_stats manifest_parser · 90%
info
Tool: list_alerts manifest_parser · 90%
info
Tool: list_org_roles manifest_parser · 90%
info
Tool: update_org manifest_parser · 90%
info
Tool: create_custom_role manifest_parser · 90%
info
Tool: transfer_ownership manifest_parser · 90%
info
Tool: get_account manifest_parser · 90%
info
Tool: list_org_users manifest_parser · 90%
info
Tool: list_api_keys manifest_parser · 90%
info
Tool: revoke_api_key manifest_parser · 90%
info
Tool: create_api_key manifest_parser · 90%
info
Tool: list_account_labels manifest_parser · 90%
info
Tool: update_user_role manifest_parser · 90%
info
Tool: remove_user manifest_parser · 90%
info
Tool: update_account_labels manifest_parser · 90%
info
Tool: invite_user manifest_parser · 90%
info
Tool: list_campaigns manifest_parser · 90%
info
Tool: update_campaign manifest_parser · 90%
info
Tool: run_campaign manifest_parser · 90%
info
Tool: list_campaign_runs manifest_parser · 90%
info
Tool: list_campaigns_picker manifest_parser · 90%
info
Tool: create_campaign manifest_parser · 90%
info
Tool: cancel_campaign manifest_parser · 90%
info
Tool: unarchive_campaign manifest_parser · 90%
info
Tool: get_campaign manifest_parser · 90%
info
Tool: archive_campaign manifest_parser · 90%
info
Tool: get_policy_set manifest_parser · 90%
info
Tool: list_policy_sets manifest_parser · 90%
info
Tool: create_policy_set manifest_parser · 90%
info
Tool: update_policy_set manifest_parser · 90%
info
Tool: delete_policy_set manifest_parser · 90%
info
Tool: request_policy_set_approval manifest_parser · 90%
info
Tool: run_campaign_group manifest_parser · 90%
info
Tool: get_campaign_group manifest_parser · 90%
info
Tool: create_campaign_group manifest_parser · 90%
info
Tool: pause_campaign_group_schedule manifest_parser · 90%
info
Tool: unarchive_campaign_group manifest_parser · 90%
info
Tool: cancel_campaign_group manifest_parser · 90%
info
Tool: cancel_scan manifest_parser · 90%
info
Tool: update_campaign_group manifest_parser · 90%
info
Tool: resume_campaign_group_schedule manifest_parser · 90%
info
Tool: archive_campaign_group manifest_parser · 90%
info
Tool: list_campaign_groups manifest_parser · 90%
info
Tool: list_balance_history manifest_parser · 90%
info
Tool: list_usage manifest_parser · 90%
info
Tool: get_usage_summary manifest_parser · 90%
info
Tool: get_billing_summary manifest_parser · 90%
info
Tool: list_emulators manifest_parser · 90%
info
Tool: get_custom_taxonomy manifest_parser · 90%
info
Tool: restore_custom_taxonomy manifest_parser · 90%
info
Tool: create_custom_taxonomy manifest_parser · 90%
info
Tool: update_custom_taxonomy manifest_parser · 90%
info
Tool: list_custom_taxonomies manifest_parser · 90%
info
Tool: delete_custom_taxonomy manifest_parser · 90%
info
Tool: parse_custom_taxonomy_text manifest_parser · 90%
info
Tool: list_invoices manifest_parser · 90%
info
Tool: get_invoice_pdf manifest_parser · 90%
info
Tool: list_scans manifest_parser · 90%
info
Tool: list_scan_children manifest_parser · 90%
info
Tool: create_scan manifest_parser · 90%
info
Tool: create_bulk_scans manifest_parser · 90%
info
Tool: get_scan manifest_parser · 90%
info
Tool: get_scan_creative_screenshot manifest_parser · 90%
info
Tool: get_scan_landing_screenshot manifest_parser · 90%
info
Tool: recheck_scans manifest_parser · 90%
info
Tool: get_scan_screenshot manifest_parser · 90%
info
Tool: update_tag_definition manifest_parser · 90%
info
Tool: list_scan_tags manifest_parser · 90%
info
Tool: list_tags manifest_parser · 90%
info
Tool: get_tag_definition manifest_parser · 90%
info
Tool: delete_tag_definition manifest_parser · 90%
info
Tool: test_custom_rule manifest_parser · 90%
info
Tool: list_custom_rules manifest_parser · 90%
info
Tool: get_custom_rule manifest_parser · 90%
info
Tool: create_custom_rule manifest_parser · 90%
info
Tool: list_run_scans manifest_parser · 90%
info
Tool: update_custom_rule manifest_parser · 90%
info
Tool: delete_custom_rule manifest_parser · 90%
info
Tool: delete_webhook manifest_parser · 90%
info
Tool: get_webhook manifest_parser · 90%
info
Tool: list_webhook_event_types manifest_parser · 90%
info
Tool: replay_webhook_delivery manifest_parser · 90%
info
Tool: create_webhook manifest_parser · 90%
info
Tool: update_webhook manifest_parser · 90%
info
Tool: list_webhooks manifest_parser · 90%
info
Tool: rotate_webhook_secret manifest_parser · 90%
info
Tool: test_webhook manifest_parser · 90%
info
Tool: bulk_replay_webhook manifest_parser · 90%
info
Tool: list_webhook_deliveries manifest_parser · 90%
info
Tool: cancel_run manifest_parser · 90%
info
Tool: get_run manifest_parser · 90%
info
Tool: delete_alert_destination manifest_parser · 90%
info
Tool: get_campaign_alert_overrides manifest_parser · 90%
info
Tool: set_alert_destination_version manifest_parser · 90%
info
Tool: list_alert_destinations manifest_parser · 90%
info
Tool: set_campaign_alert_overrides manifest_parser · 90%
info
Tool: list_geos manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (6) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 703 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%