simplelogin-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SL_API_KEY | Yes | Required SimpleLogin API key. Grants full account control; treat it like a password. No real key is supplied for automated discovery. | |
| SL_API_URL | No | Absolute HTTP(S) URL of the hosted or self-hosted SimpleLogin API. | https://app.simplelogin.io |
| SL_REQUEST_TIMEOUT_MS | No | Per-request SimpleLogin API timeout in milliseconds; integer from 1 to 2147483647. | 15000 |
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 |
|---|---|
| alias_listA | List the user's SimpleLogin email aliases, 20 per page. Use page_id for pagination (starts at 0). Optionally filter to only enabled, only disabled, or only pinned aliases, and/or search by a free-text query matching the alias email, note, or name. |
| alias_getA | Get full details of a single SimpleLogin alias by its numeric id, including note, mailboxes, enabled/pinned state, PGP status, and activity counters. |
| alias_activity_listA | List the forward/reply/block activity history for a single SimpleLogin alias, 20 entries per page (most recent first). Each entry has an action (forward, reply, block, or bounced), the from/to addresses, a Unix timestamp, and the reverse-alias address for replies. Use page_id for pagination (starts at 0); the per-page cap keeps responses bounded, so page through rather than expecting the full history in one call. |
| alias_create_randomA | Create a new random SimpleLogin alias with a system-generated address. mode "uuid" produces a random-string address; "word" produces a word-based one; omit to use the account default. Optionally attach a note and the website hostname the alias is for. |
| alias_create_customA | Create a custom SimpleLogin alias with a chosen prefix and suffix. First call alias_options_get to obtain a valid signed_suffix and confirm can_create is true, then pass that exact signed_suffix here with the desired alias_prefix and the mailbox_ids (from mailbox_list) that should receive mail. note and name are optional. |
| alias_updateA | Update an existing alias. Provide at least one field to change: note, display name, the owning mailbox (mailbox_id) or full mailbox set (mailbox_ids), whether PGP is disabled, and whether the alias is pinned. Only the provided fields change. mailbox_id and mailbox_ids are mutually exclusive, and a call that changes nothing is rejected without contacting SimpleLogin. Replacing mailboxes can stop future mail from landing in removed mailboxes. |
| alias_deleteA | Permanently delete a SimpleLogin alias by id. This cannot be undone; mail sent to the address afterwards is rejected. Prefer alias_set_enabled with enabled=false to merely disable an alias. Requires confirm=true as an explicit acknowledgement of the deletion. |
| alias_set_enabledA | Set a SimpleLogin alias to a specific enabled state. Pass enabled=true to enable or enabled=false to disable. A disabled alias silently blocks incoming mail without being deleted. Idempotent: setting the state it is already in changes nothing. Returns the resulting enabled state. |
| alias_options_getA | Fetch the options needed to create a custom alias: whether the user can create more aliases (can_create), a prefix suggestion, and the list of available suffixes — each with the signed_suffix required by alias_create_custom. Pass the target website hostname to tailor the suggestion. |
| alias_domains_listA | List the email domains available for creating aliases on this account, each flagged is_custom (a user-owned domain) or not (a SimpleLogin public domain). |
| contact_listA | List the contacts (reverse aliases) for a single SimpleLogin alias, 20 per page. Each contact is an address the alias can correspond with: it carries the contact email, a reverse_alias_address the user sends to in order to reach that contact from the alias, whether forwarding from it is blocked (block_forward), and when it was last emailed. Use page_id for pagination (starts at 0). |
| contact_createA | Create a contact (reverse alias) on an alias so the user can send mail from the alias to that contact while keeping their real mailbox hidden. Pass the recipient as a bare address ("first@example.com") or an RFC-5322 display form ("First Last first@example.com"). The response includes the reverse_alias_address to send to; existed=true means the contact already existed and nothing was created. Creating reverse aliases may require a premium SimpleLogin plan. |
| contact_set_blockedA | Set whether forwarding from a contact to its alias is blocked. Pass blocked=true to stop mail from that contact reaching the user, or blocked=false to allow it again. Requires the alias_id (the contact belongs to it) so the current state can be read first: setting the state it is already in is a no-op. Returns the resulting block_forward state. |
| contact_deleteA | Permanently delete a contact (reverse alias) by its numeric id. This cannot be undone; the reverse-alias address stops working and the correspondence history for that contact is removed. To merely stop receiving mail from the contact, prefer contact_set_blocked with blocked=true instead. Requires confirm=true as an explicit acknowledgement. |
| mailbox_listA | List the account's mailboxes (verified and unverified), each with its id, email, default flag, alias count, and verification status. Use the returned ids as mailbox_ids when creating or updating aliases. |
| mailbox_createA | Add a new mailbox (a real email address that receives alias mail) to the account. SimpleLogin sends a verification email to the address; the mailbox starts unverified and cannot own aliases or become the default until the user clicks that link. Check mailbox_list to see when verified turns true. Additional mailboxes may require a premium SimpleLogin plan. |
| mailbox_updateA | Update a mailbox. Provide at least one change: set_default=true makes this mailbox the account default (it must be verified); email starts an address change that stays pending until the new address is verified via the email SimpleLogin sends it; cancel_email_change=true aborts such a pending change. set_default and cancel_email_change only accept true (a mailbox stops being default only when another is promoted, and a pending change is cancelled rather than toggled back), email and cancel_email_change are mutually exclusive, and a call that changes nothing is rejected without contacting SimpleLogin. |
| mailbox_deleteA | Permanently delete a mailbox. The aliases it owns must be dealt with explicitly: pass transfer_aliases_to (the id of a different, verified mailbox from mailbox_list) to move them, or delete_aliases=true to delete them with the mailbox; exactly one of the two is required. The default mailbox cannot be deleted; promote another mailbox first via mailbox_update with set_default=true. This cannot be undone. Requires confirm=true as an explicit acknowledgement of the deletion. |
| custom_domain_listA | List the account's custom domains, each with its id, domain name, verification status, alias count, catch-all and random-prefix-generation flags, display name, and the mailboxes that receive its mail. Use the returned ids with custom_domain_update and custom_domain_trash_list. |
| custom_domain_updateA | Update a custom domain. Provide at least one change: catch_all toggles whether mail to any unknown address on the domain auto-creates an alias; random_prefix_generation toggles random prefixes for on-the-fly aliases; name sets the display name used as the From name on the domain (null clears it); mailbox_ids replaces the full set of mailboxes receiving the domain's mail (1 to 20 ids from mailbox_list). Only the provided fields change, a call that changes nothing is rejected without contacting SimpleLogin, and the updated domain is returned. Disabling catch_all or replacing mailbox_ids can stop future delivery for affected domain addresses. |
| custom_domain_trash_listA | List a custom domain's deleted aliases (its trash), each with the alias address and a Unix deletion timestamp. Deleted addresses on a custom domain are remembered so they are not silently recreated by catch-all; use this to audit what was removed or to check whether an address is in the trash before reusing it. SimpleLogin exposes this endpoint without server-side pagination, so the MCP result is locally paged with page_id (starts at 0) and limit (defaults to 100, max 500). |
| account_get_infoA | Return the authenticated SimpleLogin user's info: name, email, premium/trial status, and free-plan alias limit. Useful as a quick check that the configured API key is valid. |
| account_get_statsA | Return the account's lifetime counters: number of aliases (nb_alias) and number of emails forwarded (nb_forward), replied to (nb_reply), and blocked (nb_block) across all aliases. Use alias_activity_list for the per-alias breakdown behind these totals. |
| notification_listA | List account notifications from SimpleLogin (announcements, warnings such as a mailbox bouncing, etc.), 20 per page, unread first then newest first. Each entry has an id, nullable title, HTML message, read flag, and a human-readable created_at. Use page_id for pagination (starts at 0); more=true means another page exists. Mark entries handled with notification_mark_read. |
| notification_mark_readA | Mark a single account notification as read, by the id from notification_list. Idempotent: marking an already-read notification succeeds and changes nothing. Notifications cannot be marked unread or deleted via the API. |
| settings_getA | Return the account-wide alias settings: alias_generator (random-alias address style), notification (email notifications on/off), random_alias_default_domain (domain used for random aliases), sender_format (how the original sender appears in forwarded mail), and random_alias_suffix (suffix style for random and on-the-fly aliases). Change them with settings_update. |
| settings_updateA | Update the account-wide alias settings; only the provided fields change and the resulting settings are returned. Deliberately limited to the five documented alias-behavior fields: account email, password, payment, and deletion are out of scope and stay in the web UI. random_alias_default_domain must be a domain from alias_domains_list (premium-only domains need a premium account; a custom domain must be yours and verified). A call that changes nothing is rejected without contacting SimpleLogin. |
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 27 tools
Each tool targets a distinct resource/action combination; alias, mailbox, contact, custom-domain, notification, settings, and account operations are clearly separated. Overlaps like alias_create_random vs alias_create_custom and alias_update vs alias_set_enabled are disambiguated by descriptions and different intent.
Names are consistently snake_case and mostly follow a resource_action or resource_subresource_action pattern. Minor deviations exist: alias_domains_list uses a plural subresource with list-last while alias_list is singular, and account_get_info vs settings_get differ in verb placement.
27 tools is on the heavy side for an MCP server, exceeding the typical 3-15 range. The breadth is justified by SimpleLogin's many resource types, but the surface is large enough that count feels borderline rather than well-scoped.
Core lifecycle coverage is strong: aliases, mailboxes, contacts, settings, and notifications have read/write/delete or state-change operations. Gaps remain around custom-domain creation/deletion and fewer CRUD operations for some secondary resources, but agents can work around most of them.