sieve-mcp-server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SIEVE_MCP_HOME | No | Set this to move the config store somewhere else. Accounts live in ~/.sieve-mcp/ by default. | |
| SIEVE_MCP_ACCOUNT_<NAME>_PASSWORD | No | Password for the account named <NAME> (uppercase, non-alphanumeric characters replaced by _). Used to keep a password out of the store. | |
| SIEVE_MCP_ACCOUNT_<NAME>_USERNAME | No | Username for the account named <NAME> (uppercase, non-alphanumeric characters replaced by _). Used to keep a password out of the store. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sieve_list_accountsA | List configured ManageSieve accounts (name, host, port, tls, user, and where the password comes from — never the password itself). Call this first when the user has more than one mailbox, to get the accountName for other tools. |
| sieve_add_accountA | Add a ManageSieve account. Prefer telling the user to run |
| sieve_update_accountA | Change connection settings of an existing account (host, port, tls, user, certificate check, name). Passwords are best changed with |
| sieve_remove_accountA | Remove an account from the local config. This only forgets the connection details on this machine; scripts on the server are untouched. The account must be named explicitly, and only do this when the user asks. |
| sieve_get_capabilitiesA | Connect, log in, and return the server's capabilities — most importantly |
| sieve_list_scriptsA | List the Sieve scripts stored on the server and which one is active. Only one script is active at a time; it is the one that filters incoming mail. Start here before reading or changing filters. |
| sieve_get_scriptA | Read the full source of a Sieve script. Always read the current script before changing it, and edit that text rather than writing a replacement from scratch, so existing rules are preserved. |
| sieve_check_scriptA | Ask the server to validate Sieve source without saving it. Returns valid/errors/warnings from the server's own compiler, so it catches unsupported extensions too. sieve_put_script runs this automatically; use it directly while iterating on a draft. |
| sieve_put_scriptA | Create or replace a Sieve script. The server validates it first and nothing is written if it is invalid. Replacing an existing script requires overwrite: true; the previous version is backed up locally first (see sieve_list_backups). Recommended flow for changes: sieve_get_script → edit → sieve_put_script with dryRun: true → show the user the diff → sieve_put_script with overwrite: true once they agree. Writing never activates a script: if the script being replaced is already active, the change takes effect immediately; otherwise call sieve_activate_script. |
| sieve_activate_scriptA | Make a script the active one, so it filters all incoming mail from now on. This replaces the currently active script (which stays stored, just inactive). Only do this when the user asks for the script to go live. |
| sieve_deactivate_scriptsA | Deactivate the active script, so no Sieve filtering is applied to incoming mail at all. Scripts stay stored. Only when the user explicitly wants filtering switched off. |
| sieve_delete_scriptA | Delete a stored script from the server. Refuses to delete the active script. A local backup is saved first and its file name returned. Only when the user asks for the script to be deleted. |
| sieve_rename_scriptA | Rename a script on the server. If it is active it stays active. Fails if the new name is taken. |
| sieve_list_backupsA | List local backups taken automatically before scripts were overwritten or deleted, newest first. Use with sieve_get_backup to undo a change. |
| sieve_get_backupA | Read the content of a local backup. To restore it, pass the content to sieve_put_script (with overwrite: true if the script still exists). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Each tool targets a clearly distinct resource and action: account management, script lifecycle, validation, activation, deletion, and local backups are cleanly separated. Overlaps such as check_script versus put_script with dryRun are explicitly clarified by the descriptions.
The set uses a consistent sieve_ prefix and mostly verb_noun snake_case names. Minor deviations include the plural in sieve_deactivate_scripts and the less standard verb in sieve_put_script, but the pattern remains highly readable.
Fifteen tools is well-scoped for a ManageSieve server covering accounts, scripts, validation, activation, and backups. Each tool has a clear role and no obvious filler.
The surface covers full account CRUD, full script lifecycle including list/read/check/create/replace/activate/deactivate/delete/rename, and backup listing/reading for restoration. No major operation needed for the stated domain appears missing.