Skip to main content
Glama
sieve-mcp-server

sieve-mcp-server

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SIEVE_MCP_HOMENoSet this to move the config store somewhere else. Accounts live in ~/.sieve-mcp/ by default.
SIEVE_MCP_ACCOUNT_<NAME>_PASSWORDNoPassword for the account named <NAME> (uppercase, non-alphanumeric characters replaced by _). Used to keep a password out of the store.
SIEVE_MCP_ACCOUNT_<NAME>_USERNAMENoUsername 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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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-mcp-setup add (or sieve-mcp-setup import-imap) in a terminal so the password is typed there instead of passing through this conversation; use this tool only if the user explicitly provides the details here. By default the connection and login are tested first and nothing is saved if they fail. The account is stored in the shared encrypted store used by every MCP client on this machine.

sieve_update_accountA

Change connection settings of an existing account (host, port, tls, user, certificate check, name). Passwords are best changed with sieve-mcp-setup update <name> --password in a terminal. The account must be named explicitly.

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 sieveExtensions, the Sieve extensions this server supports (e.g. fileinto, imap4flags, vacation, regex, variables, date). Check this before writing a script that requires an extension. Also the quickest way to test that an account works.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 15 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues