Proofpoint MCP
MCPB · PROOFPOINT-MCP.MCPB
Proofpoint TAP threats, VAPs, clickers, and IOCs from your terminal, with a local threat store.
Available components
Last scanned (7 hours ago)
Scores higher than 84% of MCPB servers
Category Security
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 Usability59
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 8953 tokens (~319/item across 28 items; 28 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 Management98
- 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
- We read all 28 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 28 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.
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.
- 30 Oct 26 +1
- Package version: 0.1.3 → 0.1.7 functional
- 28 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 85 to 88.
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 78 to 82.
- 24 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 72 to 75.
- 23 Oct 26 0
- Provenance: fail → unverified ▼ security
- Stability: 0.70 → fail ▼ security
- Package version: 0.1.5 → 0.1.7 functional
- Package version: 0.1.5 → 0.1.6 functional
- 22 Oct 26 +1
- Stability: 0.67 → unverified ▼ security
- Tool safety: pass → 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
- 20 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Oct 26 0
- Package version: 0.1.3 → 0.1.4 functional
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/proofpoint-v0.1.7/proofpoint-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 →
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 →
backfill ~604
Reconstruct up to 7 days of SIEM threat events in one command. The SIEM API caps every request at a 1-hour window with a 7-day lookback; backfill chunks the requested range into compliant windows, fetches each single-type feed, and persists every event to the local SQLite store with stable IDs. Use this command to build or repair the local event store. Do NOT use it for a quick last-hour live check; use 'siem list-issues' instead.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| resources | string | – | CSV of SIEM feeds to backfill (default: all four single-type feeds) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| since | string | – | How far back to reconstruct (e.g. 6h, 24h, 7d; API maximum 7d) (default: 24h) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
campaign_get ~48
Get campaign detail (actors, malware, techniques, members). Required: campaignId. Returns the CampaignDetail.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | Campaign identifier from the TAP Dashboard or campaign ids endpoint |
No output schema declared.
No examples provided.
campaign_list-ids ~141
Heavily rate limited (50 requests per rolling 24 hours). Prefer the local synced store for repeated queries. Required: interval. Optional: size (default: 100), page (default: 1). Returns array of CampaignSummary.
| Name | Type | Req | Description |
|---|---|---|---|
| interval | string | yes | ISO8601 interval (min 30s, max 1 day), e.g. 2026-06-05T00:00:00Z/2026-06-06T00:00:00Z |
| page | number | – | Page number |
| size | number | – | Maximum campaign IDs per page (default 100, max 200) |
No output schema declared.
No examples provided.
campaign_threats ~510
Expand a campaign into the threats inside it using the unlimited campaign-detail endpoint, then enrich each threat with severity, category, and status from the local threat store when present. Repeated campaign questions never touch the 50-per-day campaign-ids quota.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
context ~29
Get API domain context: resource taxonomy, auth requirements, query tips, and unique capabilities. Call this first.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
export ~542
Export paginated API data to a local file. Supports JSONL (one JSON object per line, streaming-friendly) and JSON (array). JSONL is recommended for large datasets as it has no memory pressure.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| format | string | – | Output format: jsonl or json (default: jsonl) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| limit | number | – | Maximum records to export (0 = unlimited) (default: 0) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache for fresh data (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
forensics_get ~121
Provide exactly one of threatId or campaignId. threatId queries are limited to 50 per rolling 24 hours; campaignId queries to 1800. Optional: threatId, campaignId, includeCampaignForensics (default: false). Returns array of ForensicReport.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | – | Campaign identifier (mutually exclusive with threatId) |
| includeCampaignForensics | boolean | – | With threatId, also aggregate forensics for the associated campaign |
| threatId | string | – | Threat identifier (mutually exclusive with campaignId) |
No output schema declared.
No examples provided.
import ~517
Import data from a JSONL file by issuing POST requests for each record. Each line must be a valid JSON object. Failed records are logged to stderr but do not stop the import.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| batch-size | number | – | Records per batch (future: batch API support) (default: 1) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Preview import without sending requests (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
incident ~577
Compose a single incident brief from three sources: the threat summary endpoint (severity, actors, malware, techniques), the forensics endpoint (flattened indicator evidence), and locally synced events that touched the threatId. Use this command for a full single-incident brief from a threatId. Do NOT use this command to extract just the raw indicators for blocking; use 'iocs' instead.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| include-campaign-forensics | boolean | – | Also aggregate evidence for the associated campaign (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| limit | number | – | Maximum local events to include (default: 100) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
iocs ~613
Flatten TAP's nested forensic evidence tree into a flat indicator table: sha256, md5, url, domain, ip, file_path, registry_key, process_path, mutex. Output pipes straight into a blocklist import or EDR hunt. Use this command to extract only the raw indicators for blocking or hunting. Do NOT use this command for the full narrative incident brief; use 'incident' instead.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| campaign-id | string | – | Campaign identifier (mutually exclusive with --threat-id) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| include-campaign-forensics | boolean | – | With --threat-id, also aggregate evidence for the associated campaign (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| malicious-only | boolean | – | Keep only evidence Proofpoint marked malicious (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| threat-id | string | – | Threat identifier (mutually exclusive with --campaign-id; 50 forensics lookups per 24h) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
people_list-top-clickers ~101
List users who clicked the most malicious links in a window. Optional: window (default: 30), size (default: 100), page (default: 1). Returns array of ClickerUser.
| Name | Type | Req | Description |
|---|---|---|---|
| page | number | – | Page number |
| size | number | – | Maximum users per page (default 100, max 200) |
| window | number | – | Days to look back (14, 30, or 90) |
No output schema declared.
No examples provided.
people_list-vap ~99
List Very Attacked People (highest attack index) for a window. Optional: window (default: 30), size (default: 1000), page (default: 1). Returns array of VapUser.
| Name | Type | Req | Description |
|---|---|---|---|
| page | number | – | Page number |
| size | number | – | Maximum users per page (default 1000) |
| window | number | – | Days to look back (14, 30, or 90) |
No output schema declared.
No examples provided.
risk_overlap ~542
Intersect the Very Attacked People list with the top-clickers list for the same window. The result is the highest-risk set: people drawing heavy targeting who also click. No single TAP endpoint can answer this; the CLI joins the two People feeds on identity.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| limit | number | – | Maximum overlap rows to return (0 = all) (default: 0) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| window | number | – | Days to look back: 14, 30, or 90 (default: 30) |
| yes | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 25) |
| query | string | yes | Search query (supports FTS5 syntax: AND, OR, NOT, quotes for phrases) |
No output schema declared.
No examples provided.
siem_list-all-events ~179
Fetch all click and message threat events in the window. Optional: sinceSeconds (default: 3600), interval, sinceTime (plus 3 more). Returns the SiemResponse.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response format |
| interval | string | – | ISO8601 interval (30s to 1h), e.g. 2026-06-06T12:00:00Z/2026-06-06T13:00:00Z |
| sinceSeconds | number | – | Seconds before now to start the window (max 3600 per request, lookback up to 7 days) |
| sinceTime | string | – | ISO8601 start time for the retrieval window |
| threatStatus | string | – | Filter by threat status |
| threatType | string | – | Filter by threat type |
No output schema declared.
No examples provided.
siem_list-clicks-blocked ~182
Fetch clicks to malicious URLs that were blocked in the window. Optional: sinceSeconds (default: 3600), interval, sinceTime (plus 3 more). Returns the SiemResponse.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response format |
| interval | string | – | ISO8601 interval (30s to 1h), e.g. 2026-06-06T12:00:00Z/2026-06-06T13:00:00Z |
| sinceSeconds | number | – | Seconds before now to start the window (max 3600 per request, lookback up to 7 days) |
| sinceTime | string | – | ISO8601 start time for the retrieval window |
| threatStatus | string | – | Filter by threat status |
| threatType | string | – | Filter by threat type |
No output schema declared.
No examples provided.
siem_list-clicks-permitted ~182
Fetch clicks to malicious URLs that were permitted in the window. Optional: sinceSeconds (default: 3600), interval, sinceTime (plus 3 more). Returns the SiemResponse.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response format |
| interval | string | – | ISO8601 interval (30s to 1h), e.g. 2026-06-06T12:00:00Z/2026-06-06T13:00:00Z |
| sinceSeconds | number | – | Seconds before now to start the window (max 3600 per request, lookback up to 7 days) |
| sinceTime | string | – | ISO8601 start time for the retrieval window |
| threatStatus | string | – | Filter by threat status |
| threatType | string | – | Filter by threat type |
No output schema declared.
No examples provided.
siem_list-issues ~195
Events for clicks to malicious URLs permitted and messages delivered containing a known threat within the window — the subset that got through and needs response. Optional: sinceSeconds (default: 3600), interval, sinceTime (plus 3 more). Returns the SiemResponse.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response format |
| interval | string | – | ISO8601 interval (30s to 1h), e.g. 2026-06-06T12:00:00Z/2026-06-06T13:00:00Z |
| sinceSeconds | number | – | Seconds before now to start the window (max 3600 per request, lookback up to 7 days) |
| sinceTime | string | – | ISO8601 start time for the retrieval window |
| threatStatus | string | – | Filter by threat status |
| threatType | string | – | Filter by threat type |
No output schema declared.
No examples provided.
siem_list-messages-blocked ~179
Fetch blocked messages that contained a known threat. Optional: sinceSeconds (default: 3600), interval, sinceTime (plus 3 more). Returns the SiemResponse.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response format |
| interval | string | – | ISO8601 interval (30s to 1h), e.g. 2026-06-06T12:00:00Z/2026-06-06T13:00:00Z |
| sinceSeconds | number | – | Seconds before now to start the window (max 3600 per request, lookback up to 7 days) |
| sinceTime | string | – | ISO8601 start time for the retrieval window |
| threatStatus | string | – | Filter by threat status |
| threatType | string | – | Filter by threat type |
No output schema declared.
No examples provided.
siem_list-messages-delivered ~179
Fetch delivered messages that contained a known threat. Optional: sinceSeconds (default: 3600), interval, sinceTime (plus 3 more). Returns the SiemResponse.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response format |
| interval | string | – | ISO8601 interval (30s to 1h), e.g. 2026-06-06T12:00:00Z/2026-06-06T13:00:00Z |
| sinceSeconds | number | – | Seconds before now to start the window (max 3600 per request, lookback up to 7 days) |
| sinceTime | string | – | ISO8601 start time for the retrieval window |
| threatStatus | string | – | Filter by threat status |
| threatType | string | – | Filter by threat type |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | SQL 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.
sync ~1,142
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| concurrency | number | – | Number of parallel sync workers (default: 4) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| full | boolean | – | Full resync (ignore previous checkpoint) (default: false) |
| global-param | string | – | 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-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| latest-only | boolean | – | Refresh head of each resource only; clears resume cursor and caps pages at 1. Mutually exclusive with --since (--since wins). (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| max-pages | number | – | Maximum pages to fetch per resource (0 = unlimited; cap-hit emits a sync_warning event) (default: 0) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| param | string | – | 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… |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| resource-param | string | – | Per-resource extra query param (repeatable, resource:key=value). Wins over --param and --global-param when keys conflict. |
| resources | string | – | Comma-separated resource types to sync. Naming a parent also runs its parent-keyed dependents (see Long help for scoping). |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| since | string | – | Incremental sync duration (e.g. 7d, 24h, 1w, 30m) |
| strict | boolean | – | Exit non-zero on any per-resource failure (default: only critical failures or all-resource failure exit non-zero). (default: false) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
threat_get-summary ~52
Get a threat summary (severity, spread, actors, malware, techniques). Required: threatId. Returns the ThreatSummary.
| Name | Type | Req | Description |
|---|---|---|---|
| threatId | string | yes | Threat identifier from SIEM events or the TAP Dashboard |
No output schema declared.
No examples provided.
url_decode ~69
Decode TAP-rewritten (urldefense) URLs to their original targets. Required: urls. Returns array of UrlDecodeResult. (public)
| Name | Type | Req | Description |
|---|---|---|---|
| urls | string | yes | One or more TAP-rewritten (urldefense) URLs in v1, v2, or v3 format |
No output schema declared.
No examples provided.
user ~593
One view of a person across every source: locally synced click and message events (run 'backfill' or 'sync' first), plus live VAP and top-clicker status for the window. Use this during investigations to answer "show me every event touching this user" without re-spending SIEM quota. Use --data-source local to skip the live People lookups and read only the local store.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| limit | number | – | Maximum local events to return (default: 100) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| window | number | – | Days to look back for live VAP/clicker status: 14, 30, or 90 (default: 30) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
workflow ~444
Compound workflows that combine multiple API operations
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
workflow_archive ~508
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| full | boolean | – | Full re-archive (ignore previous sync state) (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
workflow_status ~448
Show local archive status and sync state for all resources
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
How do I install the Proofpoint MCP server?
Proofpoint 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, 8ad9dcb9988cb692f6c3a1dbff917e1147a988c81f60ce6d623896d579604e50; the commands to do that are on this page. If it does not match, do not open it.
mcpb · proofpoint-mcp.mcpb
Download bundleCheck 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
8ad9dcb9988cb692f6c3a1dbff917e1147a988c81f60ce6d623896d579604e50
macOS / Linux
echo "8ad9dcb9988cb692f6c3a1dbff917e1147a988c81f60ce6d623896d579604e50 proofpoint-mcp.mcpb" | shasum -a 256 -c
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\proofpoint-mcp.mcpb).Hash -eq "8ad9dcb9988cb692f6c3a1dbff917e1147a988c81f60ce6d623896d579604e50"
Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.
What is the Proofpoint MCP server?
Proofpoint MCP is listed in the public MCP registry as io.github.Servosity/proofpoint-mcp. Proofpoint TAP threats, VAPs, clickers, and IOCs from your terminal, with a local threat store. This page covers its MCPB bundle (https://github.com/Servosity/msp-skills/releases/download/proofpoint-v0.1.7/proofpoint-mcp.mcpb).
Is the Proofpoint MCP server safe to use?
Proofpoint 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 Proofpoint MCP server expose?
Proofpoint MCP exposes 28 tools: backfill, campaign_get, campaign_list-ids, campaign_threats, context, and 23 more. Their descriptions and schemas cost roughly 8,953 tokens of context every time the server is loaded.
What licence is the Proofpoint MCP server under?
Proofpoint 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.