Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

KnowBe4 MCP

MCPB · KNOWBE4-MCP.MCPB

Every KnowBe4 KMSAT reporting feature plus a local SQLite store that answers the cross-client

Available components

+1 this week 52 Trust /100

Last scanned (7 hours ago)

Scores higher than 84% of MCPB servers

Category Security

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 12 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability58
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 18844 tokens (~303/item across 62 items; 62 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management99
  • Stability check failed: the tool surface changed between 0.1.3 and 0.1.7: 0 tool removals, 1 breaking changes, 0 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 62 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Nov 26 +1
    • Maintenance: unverified → pass ▲ functional
  • 31 Oct 26 0
    • Maintenance: pass → unverified ▼ functional
  • 29 Oct 26 +2
    • Maintenance: unverified → pass ▲ functional
  • 27 Oct 26 −1
    • Maintenance: pass → unverified ▼ functional
  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 79 to 83.

  • 24 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 73 to 76.

  • 23 Oct 26 +1
    • Stability: 0.70 → fail ▼ security
    • Schema quality: 339 → 303 ▲ functional
    • Package version: 0.1.5 → 0.1.7 functional
    • Package version: 0.1.5 → 0.1.6 functional
  • 22 Oct 26 0
    • Tool safety: pass → unverified ▼ security
    • Stability: 0.67 → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Package version: 0.1.4 → 0.1.5 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed mcpb/https://github.com/Servosity/msp-skills/releases/download/knowbe4-v0.1.7/knowbe4-mcp.mcpb@0.1.7

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem mcpb
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 62 exposed · ~18,844 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
repeat_clickers ~550

Surface users who clicked the bait in two or more distinct phishing security tests within a window — the hardest-to-train humans. Counts distinct clicked PSTs per user across every synced test; no single KnowBe4 API call spans PSTs. Reads the local store. Run 'knowbe4-cli sync' first (it walks per-PST recipients into the store).

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
min-clicksnumber–Minimum distinct phishing tests a user must have clicked (default: 2)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
sincestring–Only count clicks within this window (e.g. 90d, 6mo, 1y)
timeoutstring–Request timeout (default: 1m0s)
topnumber–Limit to the top N users (0 = no limit) (default: 25)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

report_rate ~640

Use this command to rank users or groups by their phish-report-vs-click behavior — how often they report simulated phish (the Phish Alert Button) versus falling for them. Surfaces the people who never report. Ratios reported vs clicked recipient rows across every synced PST; no KnowBe4 endpoint returns report behavior across tests. Do NOT use this command to rank overall human risk with full training context; use 'risk-leaderboard' instead. Reads the local store. Run 'knowbe4-cli sync' first.

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
bottomnumber–Rank the N worst reporters first (lowest report rate, most clicks) (default: 25)
by-groupboolean–Aggregate report/click behavior by group instead of per user (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
min-deliverednumber–Drop entities with fewer delivered phish than this (default: 1)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
sincestring–Only count deliveries/clicks/reports within this window (e.g. 90d, 6mo, 1y)
timeoutstring–Request timeout (default: 1m0s)
topnumber–Rank the N best reporters first instead (mutually exclusive with --bottom) (default: 0)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

risk_drift ~577

Rank users and groups by how much their risk score moved between the latest local snapshot and the snapshot nearest (latest - window). The API returns a raw series per entity; it never returns a ranked delta across all entities. Risk snapshots accumulate every time you run 'knowbe4-cli sync' — drift needs at least two snapshots over the window to compute a delta.

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
entitystring–Limit to user, group, or account (omit for all)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
topnumber–Limit to the top N by absolute movement (0 = no limit) (default: 20)
windowstring–Lookback window for the baseline snapshot (e.g. 90d, 6mo, 1y) (default: 90d)
worsenedboolean–Only entities whose risk went up (positive delta) (default: false)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

risk_leaderboard ~493

Rank the highest-risk users, each enriched with their phishing click history, report count, and number of open (not-passed) trainings. The API exposes the risk score alone; the why-behind-the-score requires fusing users, phishing recipients, and training enrollments from the local store. Run 'knowbe4-cli sync' first.

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
topnumber–Limit to the top N users (0 = no limit) (default: 25)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

search ~64

Full-text search across all synced data. Faster than paginating list endpoints. Requires sync first.

NameTypeReqDescription
limitnumber–Max results (default 25)
querystringyesSearch query (supports FTS5 syntax: AND, OR, NOT, quotes for phrases)

No output schema declared.

No examples provided.

sql ~93

Run read-only SQL against local database. Use for ad-hoc analysis, aggregations, and joins across synced resources. Requires sync first.

NameTypeReqDescription
querystringyesSQL query (SELECT or WITH...SELECT). Synced records live in resources(resource_type, id, data); filter by resource_type and use json_extract on data, e.g. SELECT json_extract(data,'$.name') FROM reso…

No output schema declared.

No examples provided.

store_purchases ~409

Store purchases — training content/modules licensed to your account

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

store-purchases_get ~37

Get a single store purchase by id. Required: id. Returns the StorePurchase.

NameTypeReqDescription
idnumberyesStore purchase id

No output schema declared.

No examples provided.

store-purchases_list ~66

List all training store purchases (licensed content/modules). Optional: page (default: 1), per-page (default: 100). Returns array of StorePurchase.

NameTypeReqDescription
pagenumber–1-based page number
per-pagenumber–Items per page

No output schema declared.

No examples provided.

sync ~1,181

Sync data from the API into a local SQLite database. Supports resumable incremental sync (only fetches new data since last sync) and full resync. Once synced, use the 'search' command for instant full-text search. Exit codes & warnings: Resources the API denies access to (HTTP 403, or HTTP 400 with an access-policy body) are reported as warnings rather than failing the run. In --json mode each is emitted as a {"event":"sync_warning",...} line carrying status, reason, and message fields, and a final {"event":"sync_summary",...} aggregates the run. Exit 0 when at least one resource synced and no resource flagged in the spec as critical (x-critical: true) failed; non-critical failures emit {"event":"sync_warning","reason":"exit_policy_default_changed", ...} so callers can detect that a partial failure was tolerated. Pass --strict to exit non-zero on any per-resource failure. Exit is always non-zero when every selected resource failed, regardless of --strict. Resource scoping: --resources runs the named top-level resources, plus any parent-keyed dependent whose own name is listed OR whose parent table is listed. Naming a parent therefore cascades to its dependents (so "sync this parent and its children" works without listing every nested resource by hand). There is no flag today to suppress the cascade for a named parent. To run a dependent without re-syncing its parent, list only the dependent by name; the parent table must already be populated from a prior sync.

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
concurrencynumber–Number of parallel sync workers (default: 4)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
fullboolean–Full resync (ignore previous checkpoint) (default: false)
global-paramstring–Extra query param to inject into every sync request including dependent path-scoped calls (repeatable, key=value). Use when an API requires a scope on every call regardless of path nesting.
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
latest-onlyboolean–Refresh head of each resource only; clears resume cursor and caps pages at 1. Mutually exclusive with --since (--since wins). (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
max-pagesnumber–Maximum pages to fetch per resource (0 = unlimited; cap-hit emits a sync_warning event) (default: 0)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
paramstring–Extra query param to inject into flat-list sync requests (repeatable, key=value). Skipped on path-scoped dependent requests so a top-level scope like workspace=<id> does not double up on /parents/<id…
path-contextstring–Fill a {key} placeholder in BaseURL or request paths from a supplied value (repeatable, key=value). Wins over env-resolved Config.TemplateVars values, so it doubles as a one-off override at the call…
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
resource-paramstring–Per-resource extra query param (repeatable, resource:key=value). Wins over --param and --global-param when keys conflict.
resourcesstring–Comma-separated resource types to sync. Naming a parent also runs its parent-keyed dependents (see Long help for scoping).
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
sincestring–Incremental sync duration (e.g. 7d, 24h, 1w, 30m)
strictboolean–Exit non-zero on any per-resource failure (default: only critical failures or all-resource failure exit non-zero). (default: false)
timeoutstring–Request timeout (default: 1m0s)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

tail ~524

Tail streams live data changes by polling the API at configurable intervals. Events are emitted as NDJSON to stdout for piping to other tools. Gracefully shuts down on SIGTERM/SIGINT. Note: For APIs with WebSocket or SSE support, a future version will use native streaming instead of polling.

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
argsstring–Additional positional arguments or raw CLI flags to append to the command.
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
followboolean–Keep running (set --follow=false for single poll) (default: true)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
intervalstring–Poll interval (default: 10s)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
resourcestring–Resource type to tail
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

training_campaigns ~407

Training campaigns — assigned security-awareness training programs

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

training_enrollments ~411

Training enrollments — per-user module assignments with completion status

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

training-campaigns_get ~38

Get a single training campaign by id. Required: id. Returns the TrainingCampaign.

NameTypeReqDescription
idnumberyesTraining campaign id

No output schema declared.

No examples provided.

training-campaigns_list ~62

List all training campaigns. Optional: page (default: 1), per-page (default: 100). Returns array of TrainingCampaign.

NameTypeReqDescription
pagenumber–1-based page number
per-pagenumber–Items per page

No output schema declared.

No examples provided.

training-enrollments_get ~37

Get a single training enrollment by id. Required: id. Returns the TrainingEnrollment.

NameTypeReqDescription
idnumberyesEnrollment id

No output schema declared.

No examples provided.

training-enrollments_list ~111

List all training enrollments with completion status and time spent. Optional: page (default: 1), per-page (default: 100), campaign-id (plus 1 more). Returns array of TrainingEnrollment.

NameTypeReqDescription
campaign-idnumber–Only enrollments in this training campaign
pagenumber–1-based page number
per-pagenumber–Items per page
store-purchase-idnumber–Only enrollments for this store purchase / module

No output schema declared.

No examples provided.

untrained_clickers ~522

Anti-join: users who clicked a phishing test but have no Passed/Completed training enrollment. Phishing results and training records are separate KnowBe4 endpoints the console never correlates — this is the most actionable remediation list a vCISO owns. Reads the local store. Run 'knowbe4-cli sync' first.

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
sincestring–Only count clicks within this window (e.g. 90d, 6mo, 1y)
timeoutstring–Request timeout (default: 1m0s)
topnumber–Limit to the top N users by risk (0 = no limit) (default: 0)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

users ~417

Users in the KnowBe4 console — phish-prone percentage, current risk score, group membership

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

users_get ~32

Get a single user by id. Required: id. Returns the User.

NameTypeReqDescription
idnumberyesUser id

No output schema declared.

No examples provided.

users_list ~109

List all users with risk score and phish-prone percentage. Optional: page (default: 1), per-page (default: 100), status (plus 1 more). Returns array of User.

NameTypeReqDescription
group-idnumber–Only users in this group id
pagenumber–1-based page number
per-pagenumber–Items per page (default 100, max 500)
statusstring–Filter by status: active or archived

No output schema declared.

No examples provided.

users_risk-score-history ~60

Get a user's risk-score history time series. Required: id. Optional: full. Returns array of RiskScorePoint.

NameTypeReqDescription
fullstring–Set 'true' to return the full history
idnumberyesUser id

No output schema declared.

No examples provided.

workflow ~404

Compound workflows that combine multiple API operations

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

workflow_archive ~468

Archive fetches all syncable resources from the API and stores them in a local SQLite database. Supports incremental sync (only new data since last run) and full resync. After archiving, use 'search' for instant full-text search.

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
fullboolean–Full re-archive (ignore previous sync state) (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

workflow_status ~408

Show local archive status and sync state for all resources

NameTypeReqDescription
agentboolean–Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
compactboolean–Return only key fields (id, name, status, timestamps) for minimal token usage (default: false)
csvboolean–Output as CSV (table and array responses) (default: false)
data-sourcestring–Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
dry-runboolean–Show request without sending (default: false)
human-friendlyboolean–Enable colored output and rich formatting (default: false)
idempotentboolean–Treat already-existing create results as a successful no-op (default: false)
jsonboolean–Output as JSON (default: false)
max-agestring–Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
no-cacheboolean–Bypass response cache (default: false)
no-colorboolean–Disable colored output (default: false)
no-inputboolean–Disable all interactive prompts (for CI/agents) (default: false)
plainboolean–Output as plain tab-separated text (default: false)
quietboolean–Bare output, one value per line (default: false)
rate-limitnumber–Max requests per second (0 to disable) (default: 0)
selectstring–Comma-separated fields to include in output (e.g. --select id,name,status)
timeoutstring–Request timeout (default: 1m0s)
yesboolean–Skip confirmation prompts (for agents and scripts) (default: false)

No output schema declared.

No examples provided.

Install

How do I install the KnowBe4 MCP server?

KnowBe4 MCP ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, e25670aeada2a1970b5666855de707d4fc55e319986cb2cc2a2eadcabd1b772d; the commands to do that are on this page. If it does not match, do not open it.

mcpb · knowbe4-mcp.mcpb

Download bundle

Check the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.

SHA-256

e25670aeada2a1970b5666855de707d4fc55e319986cb2cc2a2eadcabd1b772d

macOS / Linux

echo "e25670aeada2a1970b5666855de707d4fc55e319986cb2cc2a2eadcabd1b772d  knowbe4-mcp.mcpb" | shasum -a 256 -c

Windows (PowerShell)

(Get-FileHash -Algorithm SHA256 .\knowbe4-mcp.mcpb).Hash -eq "e25670aeada2a1970b5666855de707d4fc55e319986cb2cc2a2eadcabd1b772d"

Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.

Common questions

What is the KnowBe4 MCP server?

KnowBe4 MCP is listed in the public MCP registry as io.github.Servosity/knowbe4-mcp. Every KnowBe4 KMSAT reporting feature plus a local SQLite store that answers the cross-client. This page covers its MCPB bundle (https://github.com/Servosity/msp-skills/releases/download/knowbe4-v0.1.7/knowbe4-mcp.mcpb).

Is the KnowBe4 MCP server safe to use?

KnowBe4 MCP scores 52 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the KnowBe4 MCP server expose?

KnowBe4 MCP exposes 62 tools: account, account_info, account_risk-score-history, analytics, context, and 57 more. Their descriptions and schemas cost roughly 18,844 tokens of context every time the server is loaded.

What licence is the KnowBe4 MCP server under?

KnowBe4 MCP declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.