spamtitan-mcp
The SpamTitan MCP server enables AI assistants to manage email security by interacting with SpamTitan's quarantine, filtering lists, and statistics.
Quarantine Management
List quarantined emails with filtering by sender, recipient, subject, reason, and pagination
View details of a specific quarantined message (sender, recipient, subject, spam score, reason, status) — renders as an interactive card in compatible MCP Apps
Release a quarantined message, delivering it to the intended recipient
Permanently delete a quarantined message (irreversible)
Allowlist & Blocklist Management
Add/remove sender email addresses or domains to the allowlist (bypass spam filtering)
Add/remove sender email addresses or domains to the blocklist (always rejected/quarantined)
List all current allowlist or blocklist entries
Email Statistics
Retrieve email flow stats (received, blocked, quarantined, delivered)
Filter by time period (today, yesterday, last 7/30/90 days) and by domain
Discovery & Status
Check credentials status and available domains
Discover available tools by domain (quarantine, lists, stats)
SpamTitan MCP Server
A Model Context Protocol (MCP) server for SpamTitan email security. Enables AI assistants to manage quarantine, maintain allowlists and blocklists, and view email filtering statistics.
This is a Model Context Protocol (MCP) server that connects Claude (or any MCP-compatible AI) to your SpamTitan environment.
Part of the MSP Claude Plugins ecosystem — a growing suite of AI integrations for the MSP stack. Built by MSPs, for MSPs.
Installation
npm install @wyre-ai/spamtitan-mcpRelated MCP server: knowbe4-mcp
Configuration
Set the following environment variables:
Variable | Required | Description |
| Yes | Your SpamTitan API key |
| No | Your SpamTitan instance URL, including any path prefix (e.g. |
| No | Transport mode: stdio (default) or http |
Usage
Running with Claude Desktop
Add to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"spamtitan-mcp": {
"command": "npx",
"args": ["@wyre-ai/spamtitan-mcp"],
"env": {
"SPAMTITAN_API_KEY": "your-spamtitan-api-key"
}
}
}
}Running with Claude Code (CLI)
claude mcp add spamtitan-mcp \
-e SPAMTITAN_API_KEY=your-value \
-- npx -y @wyre-ai/spamtitan-mcpDocker
docker build -t spamtitan-mcp .
docker run \
-e SPAMTITAN_API_KEY=your-value \
-p 8080:8080 spamtitan-mcpAvailable Domains
Lists
Manage allowlists and blocklists
Quarantine
Email quarantine review and management
Stats
Email filtering statistics and reports
Features
Interactive quarantined-message card (MCP Apps, SEP-1865) —
spamtitan_get_messagerenders as a read-only interactive card in MCP Apps hosts (Claude Desktop/web); plain-JSON behavior is unchanged in other hosts. The card is neutral by default, brandable viawindow.__BRAND__injection orMCP_BRAND_*env vars (MCP_BRAND_NAME,MCP_BRAND_LOGO_URL,MCP_BRAND_PRIMARY_COLOR,MCP_BRAND_ACCENT_COLOR,MCP_BRAND_BG,MCP_BRAND_TEXT) — no rebuild needed. Rebuild the card bundle withnpm run build:uiafter editingui/.
Development
# Clone the repository
git clone https://github.com/WYRE-AI/spamtitan-mcp.git
cd spamtitan-mcp
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm testContributing
Contributions are welcome! Please see CONTRIBUTING.md if present, or open an issue to discuss changes.
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Available Tools
9 toolsspamtitan_delete_messageADestructive
⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently delete a quarantined message by ID. This action cannot be undone and will remove the message from quarantine storage. Confirm with the user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | The quarantined message ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations: explicitly labels action as 'DESTRUCTIVE — IRREVERSIBLE', states permanence, and confirms removal from quarantine storage. Annotations already have destructiveHint=true, so the description reinforces and adds confirmation requirement without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two short sentences plus an emoji warning. Critical information (destructiveness, permanence, confirmation requirement) front-loaded. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with one parameter and no output schema, the description covers all necessary context: action, resource, irreversibility, and user confirmation. Sibling tools provide alternative actions, but the description is sufficient for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'message_id', so the description does not need to explain parameters. The description does not repeat or enhance parameter meaning, which is adequate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool name 'spamtitan_delete_message' combined with description 'Permanently delete a quarantined message by ID' clearly specifies verb (delete) and resource (quarantined message). Distinguishes from siblings like 'spamtitan_release_message' which implies a different action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description includes explicit instruction to 'Confirm with the user before invoking', providing usage context. However, it does not explicitly state when not to use or mention alternative tools, but the warning implies cautious invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spamtitan_get_messageA
Get a single quarantined message by ID. Returns sender, recipient, subject, quarantine reason, spam score, and status. Renders as an interactive card in MCP Apps hosts.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | The quarantined message ID to fetch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It communicates the return payload (sender, recipient, subject, reason, spam score, status) and adds an unexpected behavioral detail about rendering as an interactive card in MCP Apps hosts. It stops short of stating read-only nature explicitly or handling for invalid/not-found IDs, but the 'Get' verb and output-focused language make the behavior reasonably clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the action is front-loaded, the return fields are listed in a natural sequence, and the rendering note is appended without redundancy. Every sentence adds distinct information and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description adequately covers what the tool does and what it returns. It does not mention error cases or how to obtain a message_id, but these are minor gaps given the simplicity of the operation and the strong parameter coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter 'message_id' is already documented as 'The quarantined message ID to fetch'. The tool description reiterates 'by ID' but adds no additional semantic detail such as ID format, source, or validation constraints, so the schema already carries the necessary meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a clear resource ('a single quarantined message by ID') and enumerates the returned fields. This explicitly distinguishes it from sibling tools like spamtitan_get_queue (list) and mutation tools like spamtitan_release_message or spamtitan_delete_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when a specific quarantined message ID is known and its details are needed, but it does not explicitly state when to prefer this over alternatives such as spamtitan_get_queue. There is no exclusion guidance or when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spamtitan_get_queueA
List the email quarantine queue. Returns quarantined messages with sender, recipient, subject, and reason for quarantine.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1) | |
| reason | No | Filter by quarantine reason (e.g. spam, virus, policy) | |
| sender | No | Filter by sender email address | |
| subject | No | Filter by subject (partial match) | |
| per_page | No | Number of results per page (default: 50, max: 200) | |
| recipient | No | Filter by recipient email address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does state what is returned (quarantined messages with sender, recipient, subject, and reason) and implies a non-mutating list operation, but it does not mention permissions, rate limits, or any side effects beyond listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The action and resource are front-loaded, and the return-value summary is concise but informative. The description earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with zero required parameters and fully documented schema, the description plus schema covers what the agent needs: return fields, optional filters, and pagination defaults. The only notable gap is the absence of explicit guidance about preferring sibling tools for message-level actions, keeping it just below top-tier.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented with their defaults, filters, and constraints. The description adds only marginal context about the output including 'reason for quarantine,' which maps to the reason filter, but it does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the action verb 'List' and a specific resource, 'the email quarantine queue,' then names the returned fields: sender, recipient, subject, and reason. This clearly distinguishes it from siblings like spamtitan_get_message, spamtitan_release_message, and spamtitan_delete_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'List' implies this is the browsing/listing tool, so the basic usage context is clear. However, the description does not explicitly say when not to use it or point to spamtitan_get_message for individual message details and release/delete for actions, so alternative routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spamtitan_get_statsA
Get email flow statistics from SpamTitan including messages received, blocked, quarantined, and delivered. Supports filtering by time period.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Filter statistics for a specific domain (optional) | |
| period | No | Time period for statistics (default: today) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It does not state whether the operation is read-only, any authentication or authorization requirements, rate limits, or error handling for invalid domains. The description covers statistics categories and filtering but omits important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the main purpose and key details in the first sentence, with additional filtering context in the second. Every phrase adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description covers the essential purpose, statistics categories, and filtering options. It could mention the return format (e.g., aggregated counts) to enhance completeness, but overall it provides adequate context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters with 100% coverage. The description adds value by listing the types of statistics returned (received, blocked, quarantined, delivered) and reinforcing the filtering capability, which goes beyond the schema's basic parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves email flow statistics from SpamTitan, listing specific metrics (received, blocked, quarantined, delivered) and indicating time period filtering. This distinguishes it from sibling tools, which handle deletion, queue, allow/block lists, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for fetching statistics but does not explicitly state when to use it over alternatives or provide exclusions. It lacks guidance on scenarios where other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spamtitan_manage_allowlistA
Add or remove sender allowlist entries in SpamTitan. Allowlisted senders always bypass spam filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional note explaining why this entry was added (for add action) | |
| action | Yes | Action to perform: 'add' to allowlist a sender, 'remove' to remove one, 'list' to view all entries | |
| sender | No | Sender email address or domain to add/remove (e.g. user@example.com or @example.com). Required for add/remove actions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only states basic function and effect, but omits details like idempotency, duplicate handling, removal matching, permissions, or output format on 'list'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with clear structure: first states action and resource, second explains consequence. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with 3 params, 1 required, enum for action. Description covers purpose and effect. Lacks info on 'list' output format but overall adequate for a straightforward management tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema fully describes parameters. Description adds context about the overall effect (bypass filtering) but no additional parameter-specific meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool manages allowlist entries (add/remove) in SpamTitan and explains the effect (bypass spam filtering). It distinguishes from sibling spamtitan_manage_blocklist by specifying allowlist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage from name and sibling tools, but no explicit guidance on when to use vs blocklist, no prerequisites or exclusions. Schema enum covers actions but description lacks context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spamtitan_manage_blocklistADestructiveIdempotent
⚠ HIGH-IMPACT. Add or remove sender blocklist entries in SpamTitan. Modifies email delivery policy and affects deliverability for users. Blocklisted senders are always rejected or quarantined. Reversible by removing entries. Confirm with the user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional note explaining why this entry was added (for add action) | |
| action | Yes | Action to perform: 'add' to blocklist a sender, 'remove' to remove one, 'list' to view all entries | |
| sender | No | Sender email address or domain to add/remove (e.g. spammer@evil.com or @evil.com). Required for add/remove actions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond annotations, such as 'modifies email delivery policy', 'affects deliverability', and 'reversible by removing entries'. Consistent with destructiveHint=true and idempotentHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: three sentences with front-loaded warning symbol. Every sentence adds essential context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers impact, reversibility, and confirmation need. However, lacks description of output for 'list' action, which could be inferred but not explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and main description adds no new parameter-specific details beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool modifies SpamTitan blocklist entries, distinguishing it from the sibling 'manage_allowlist'. The verb 'manage' with 'blocklist' is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit warning about high impact and necessity for user confirmation. Describes consequences (rejection/quarantine) and reversibility. Lacks explicit 'when not to use' or direct alternative mention, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spamtitan_release_messageB
Release a quarantined message by ID, delivering it to the intended recipient.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | The quarantined message ID to release |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must disclose all behavioral traits. It only states the basic action without mentioning side effects (e.g., does it remove the quarantine entry?), failure modes, idempotency, or permissions required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no unnecessary words. Action verb is front-loaded, making it efficient for quick consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the core functionality but omits important context such as success response, error handling, and prerequisites (e.g., message must be quarantined).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% parameter description coverage, so the description adds no new information about the single parameter beyond what the schema already provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (release) and the resource (quarantined message) with the outcome (delivery to recipient). It distinguishes itself from sibling tools like delete_message and navigation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use release vs. delete or other actions. Sibling tool 'spamtitan_delete_message' is an alternative, but description does not clarify when to choose one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spamtitan_statusB
Show credentials status and available domains
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Show' implies a non-mutating read, but the description does not disclose whether the tool performs authentication, refreshes tokens, queries a live server, or has side effects. Failure modes and permission requirements are also absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. Both key outputs, 'credentials status' and 'available domains', are front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the empty schema, no annotations, and no output schema, the description is the only contextual source. It names the two outputs but does not define what credentials refer to, what the domain list represents, or how this tool fits into the workflow with siblings. It is minimally usable but leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the empty schema already captures all parameter semantics. The description does not need to explain parameters. This meets the baseline for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Show' with a clear resource: 'credentials status and available domains'. This is specific enough to distinguish it from siblings like spamtitan_release_message or spamtitan_manage_allowlist, which clearly perform different actions. However, it does not explicitly differentiate itself from spamtitan_get_stats, which could also be a status-like tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is a pre-flight credential check, whether it should be used before other SpamTitan operations, or when a user would need the domain list. No exclusions or alternative tool routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.3.3- Added
spamtitan_get_message - Added
spamtitan_get_queue - Added
spamtitan_navigate - Added
spamtitan_status
3 tool updates
v1.3.1- Removed
spamtitan_get_queue - Removed
spamtitan_navigate - Removed
spamtitan_status
8 tool updates
v1.1.2- First observed
spamtitan_delete_message - First observed
spamtitan_get_queue - First observed
spamtitan_get_stats - First observed
spamtitan_manage_allowlist - First observed
spamtitan_manage_blocklist - First observed
spamtitan_navigate - First observed
spamtitan_release_message - First observed
spamtitan_status
TDQS
Scored across 9 tools
Each tool targets a distinct resource/action: status, discovery, queue listing, message retrieval, release, delete, allowlist management, blocklist management, and stats. The destructive and high-impact tools are clearly separated from safe read operations.
The spamtitan_ prefix creates a consistent namespace, and most tools follow verb_noun naming (get_queue, get_message, release_message, delete_message, manage_allowlist, get_stats). spamtitan_status and spamtitan_navigate are minor deviations from that pattern.
Nine tools is well-scoped for a SpamTitan server: quarantine lifecycle, list management, status, stats, and a discovery helper. Each tool earns its place without redundancy or bloat.
The quarantine workflow is fully covered with list, get, release, and delete, and allow/block list modifications plus stats are present. Minor gaps include no direct way to view current allowlist/blocklist entries and no search/filter for the queue, but these are workable.
Maintenance
Related MCP Connectors
Hosted multi-user MCP for Microsoft Exchange - on-premises, hybrid and Online, per-user rights
Remote MCP server: 19 domain-hygiene and email-auth tools (DNS, SPF, DMARC, DKIM, TLS).
MCP server for MailTempo's public free temporary email inboxes.
MCP server for Support & Service Management
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for Checkpoint Harmony Email & Collaboration (Avanan). Enables AI assistants to manage email security, anti-phishing, anti-malware, and threat detection via the Avanan API.131Apache 2.0
- AlicenseBqualityAmaintenanceMCP server for KnowBe4 — security awareness training, phishing simulation, and user risk management API integration30Apache 2.0
- FlicenseNot gradedqualityCmaintenanceMCP server for ThreatLocker — zero-trust application allowlisting, approval requests, audit logs1-
- AlicenseBqualityAmaintenanceMCP server for Proofpoint Email Protection - email security, threat intelligence, TAP (Targeted Attack Protection), and email filtering API integration403Apache 2.0