
SpamTitan
io.github.WYRE-AIPublished by GitHub account WYRE-AIv1.3.4Updated Oct 24, 2026
MCP server for SpamTitan email security — quarantine, allow/block lists, and policy management.
Overview
Connects an AI assistant to a SpamTitan email security instance to review quarantined mail, manage allow/block lists, and read filtering statistics.
- What you can do
- Review and manage quarantined email messages, including a read-only interactive message card in MCP Apps hosts
- Maintain allowlists and blocklists
- View email filtering statistics and reports
- When to use it
- Useful for IT admins and managed service providers who run SpamTitan and want an assistant to triage quarantined mail, adjust allow/block entries, and pull filtering stats without opening the admin console.
- Requirements
- Runs locally over stdio (npm package or container image) or as an HTTP service. Needs a SpamTitan API key in SPAMTITAN_API_KEY and the instance URL in SPAMTITAN_BASE_URL (or SPAMTITAN_API_URL); HTTP mode additionally requires CONDUIT_S2S_SECRET and signed X-Gateway-S2S headers, with gateway mode taking the key from X-SpamTitan-API-Key.
Installation
In SourceWeft
- Open SpamTitan in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
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
Configuration
Copy .env.example and set the variables below.
/health and /healthz stay unauthenticated and do not read credentials. The stdio transport does not use CONDUIT_S2S_SECRET.
HTTP authentication
With MCP_TRANSPORT=http and CONDUIT_S2S_SECRET set, every /mcp request must include X-Gateway-S2S. The check is verifyS2sHeader in src/s2s-verify.ts: the header value is t=<unix seconds>,v1=<hex>, where the hex is HMAC-SHA256 of the literal string t=<unix seconds> keyed with CONDUIT_S2S_SECRET (64 lowercase hex characters). The timestamp must be within 300 seconds of the server clock. A missing or invalid header is HTTP 401, before vendor credentials are read.
In AUTH_MODE=gateway, /mcp also requires X-SpamTitan-API-Key. That header is the only API-key source for the request. X-SpamTitan-Base-URL is optional and, when present, selects the tenant instance. AUTH_MODE=env still requires the signed X-Gateway-S2S header, then uses SPAMTITAN_API_KEY and SPAMTITAN_BASE_URL from the environment.
Usage
Running with Claude Desktop
Add to your Claude Desktop claude_desktop_config.json:
Running with Claude Code (CLI)
Docker
The image listens on 0.0.0.0 inside the container (MCP_HTTP_HOST) and defaults to AUTH_MODE=gateway. Publish the port on loopback and pass a real S2S secret. In gateway mode, SpamTitan credentials arrive on each request as headers; the API key is not read from the environment.
Compose refuses to start when CONDUIT_S2S_SECRET is unset or empty. The gateway service sets AUTH_MODE=gateway, does not inject SPAMTITAN_API_KEY or SPAMTITAN_BASE_URL, and publishes 127.0.0.1:8080:8080:
Single-tenant HTTP (AUTH_MODE=env) still requires the S2S secret, then uses SPAMTITAN_API_KEY and SPAMTITAN_BASE_URL. It is separate from the gateway Compose service above.
Local HTTP without a secret is development-only. It binds 127.0.0.1 and logs a warning. A non-loopback MCP_HTTP_HOST (including the image default 0.0.0.0) makes startup exit:
Available 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
Contributing
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.
Source: README.md at commit 2349765
Tools
0Version history
2- v1.3.4LatestOct 14, 2026
- v1.3.3Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts