spamtitan-mcp
# SpamTitan MCP Server
[](https://opensource.org/licenses/Apache-2.0)
[](https://nodejs.org/)
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)](https://modelcontextprotocol.io/) server that connects Claude (or any MCP-compatible AI) to your SpamTitan environment.
> **Part of the [MSP Claude Plugins](https://github.com/WYRE-AI) ecosystem** — a growing suite of AI integrations for the MSP stack. Built by MSPs, for MSPs.
## Installation
```bash
npm install @wyre-ai/spamtitan-mcp
```
## Configuration
Set the following environment variables:
| Variable | Required | Description |
|----------|----------|-------------|
| `SPAMTITAN_API_KEY` | Yes | Your SpamTitan API key |
| `SPAMTITAN_BASE_URL` | No | Your SpamTitan instance URL, including any path prefix (e.g. `https://mail.example.com/spamtitan/`). Defaults to `https://api-spamtitan.titanhq.com`. |
| `MCP_TRANSPORT` | No | Transport mode: stdio (default) or http |
## Usage
### Running with Claude Desktop
Add to your Claude Desktop `claude_desktop_config.json`:
```json
{
"mcpServers": {
"spamtitan-mcp": {
"command": "npx",
"args": ["@wyre-ai/spamtitan-mcp"],
"env": {
"SPAMTITAN_API_KEY": "your-spamtitan-api-key"
}
}
}
}
```
### Running with Claude Code (CLI)
```bash
claude mcp add spamtitan-mcp \
-e SPAMTITAN_API_KEY=your-value \
-- npx -y @wyre-ai/spamtitan-mcp
```
### Docker
```bash
docker build -t spamtitan-mcp .
docker run \
-e SPAMTITAN_API_KEY=your-value \
-p 8080:8080 spamtitan-mcp
```
## 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_message` renders 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 via `window.__BRAND__` injection or `MCP_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 with `npm run build:ui` after editing `ui/`.
## Development
```bash
# 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 test
```
## Contributing
Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) if present, or open an issue to discuss changes.
## License
Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for details.
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.