ai.spideriq/mail
NPM · @SPIDERIQ/MCP-MAIL · SCANNED AUG 3
SpiderIQ Mail: SpiderMail mailboxes, messages, threads, send, compose for AI agents
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
- Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 7 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability71
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 4522 tokens (~77/item across 58 items; 58 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @spideriq/mcp-mail
claude mcp add ai-spideriq-mail -- npx -y @spideriq/mcp-mail
codex mcp add ai-spideriq-mail -- npx -y @spideriq/mcp-mail
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-spideriq-mail": {
"type": "local",
"command": [
"npx",
"-y",
"@spideriq/mcp-mail"
],
"enabled": true
}
}
} openclaw mcp add ai-spideriq-mail --command npx --arg -y --arg @spideriq/mcp-mail
mcp_servers:
ai-spideriq-mail:
command: "npx"
args: ["-y", "@spideriq/mcp-mail"] {
"mcpServers": {
"ai-spideriq-mail": {
"command": "npx",
"args": [
"-y",
"@spideriq/mcp-mail"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +4
- Stability: unverified → 0.27 ▲ functional
- 2 Aug 26 +43
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → good ▲ functional
- Licence: MIT functional
- 1 Aug 26 −6
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 28 Jul 26 +22
- Tool coverage: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Schema quality: pass functional
- First check of Schema quality: unverified functional
- First check of Tool coverage: 100 functional
- 27 Jul 26 18
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@spideriq/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 100 packages
100 packages in the resolved dependency tree · 100 deprecated · 29 stale · 1 without a linked repository.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
bulk_update_messages ~89
Apply one action to many messages (≤100 ids): mark_read | mark_unread | archive | delete | add_label. delete is irreversible; add_label needs label.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Bulk action |
| label | string | — | Label name (required for add_label) |
| message_ids | array | yes | Message ids (1-100) |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
check_access_status ~152
Check the status of a PAT access request. Returns 'pending', 'active', 'denied', 'expired', or 'revoked' (matches the backend PATRequestStatus enum). Once status==='active', the token is saved to ~/.spideriq/credentials.json automatically. Multi-brand approvals save one entry per workspace under client_id, with the first aliased as 'default' so existing tools (upload_local_file, etc.) keep working without --workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| api_url | string | — | API URL (default: https://spideriq.ai) |
| poll_token | string | yes | Poll token from request_access |
| request_id | string | yes | Request ID from request_access |
No output schema declared.
No examples provided.
compose_assist ~135
AI assistance for composing an email — drafts or transforms copy. Does NOT send. action=write generates a new draft from context/subject; rewrite/expand/shorten/formal/casual/fix_grammar transform the text in "context".
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | AI action (default write) |
| context | string | — | The brief (for write) or the text to transform |
| subject | string | — | Email subject, for context |
| thread_context | string | — | Previous thread messages for context |
| tone | string | — | Desired tone (default professional) |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
create_label ~65
Define a new label (name ≤50 chars + hex colour #RRGGBB, default #6B7280).
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | — | Hex colour #RRGGBB |
| name | string | yes | Label name |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
create_mailbox ~205
Connect a new email mailbox by its IMAP + SMTP credentials (passwords encrypted at rest). Needs both imap_* and smtp_*; use an app-specific password where the provider requires one (465=SSL, 587=STARTTLS).
| Name | Type | Req | Description |
|---|---|---|---|
| display_name | string | — | Sender display name |
| email_address | string | yes | Mailbox email address |
| imap_host | string | yes | IMAP server hostname |
| imap_password | string | yes | IMAP password / app password |
| imap_port | number | — | IMAP port (default 993) |
| imap_username | string | yes | IMAP login username |
| provider | string | yes | Email provider |
| smtp_host | string | yes | SMTP server hostname |
| smtp_password | string | yes | SMTP password / app password |
| smtp_port | number | — | SMTP port (default 587) |
| smtp_username | string | yes | SMTP login username |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
create_view ~119
Save a named inbox view from a filter_config ({mailboxes[], unread_only, starred_only, has_attachments}). is_shared exposes it team-wide.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | — | Display colour |
| filter_config | object | — | Filter config |
| is_shared | boolean | — | Share with the whole client team |
| name | string | yes | View name (≤200 chars) |
| sort_by | string | — | Sort field (default date) |
| sort_direction | string | — | Sort direction (default DESC) |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
delete_label ~32
Delete a label definition.
| Name | Type | Req | Description |
|---|---|---|---|
| label_id | string | yes | Label id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
delete_mailbox ~39
Delete a mailbox and all its data.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Mailbox email address to delete | |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
delete_outreach_connection ~70
Remove an outreach sidecar (cascades senders/campaigns/health; leaves the api_integrations credential). BRAND-ADMIN only.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| connection_id | string | yes | Outreach connection id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
delete_view ~36
Delete a saved view (creator-only).
| Name | Type | Req | Description |
|---|---|---|---|
| view_id | string | yes | Saved view id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_api_info ~33
Get information about the SpiderIQ API and your connection.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace | string | — | Workspace name (default: default) |
No output schema declared.
No examples provided.
get_auth_status ~33
Check if you are authenticated and get current user info.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace | string | — | Workspace name (default: default) |
No output schema declared.
No examples provided.
get_inbox ~96
Get inbox messages with optional filtering by mailbox, folder, and read status.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | — | Folder name (default: inbox) |
| limit | number | — | Max results (default: 20) |
| mailbox | string | — | Filter by mailbox email |
| offset | number | — | Offset for pagination |
| unread_only | boolean | — | Show only unread (default: false) |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_mailbox_stats ~42
Per-mailbox unread/starred/total counts plus client-wide totals.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_message ~72
Read one message by numeric id (marks it read). Includes attachment previews inline by default.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| include_attachments | boolean | — | Include attachment summaries + previews (default true) |
| message_id | string | yes | Numeric message id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_outreach_connection ~63
Get one outreach connection by id (provider, workspace_id, warmup_tag, lemwarm_domains, active).
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| connection_id | string | yes | Outreach connection id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_outreach_health_overview ~56
Latest health snapshot per sender for the whole brand — the deliverability/warmup grid for all sending accounts at once.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_outreach_push_status ~96
Quota usage (active_leads / max_active_leads / available) + per-campaign push counts (pushed/skipped/removed) for a connection. Use to see how many leads are in each SmartLead campaign and how much account headroom is left.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| connection_id | string | yes | Outreach connection id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_queue_stats ~48
Get statistics about job queues (pending jobs, consumers, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format (default: json) |
| workspace | string | — | Workspace name (default: default) |
No output schema declared.
No examples provided.
get_sender_health ~78
One sender's latest deliverability/warmup snapshot — health_score, sent/inbox/spam/bounce/reply (24h+7d), warmup_enabled, polled_at.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| sender_id | string | yes | Outreach sender id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_session ~78
One-call mailbox bootstrap: mailbox info + unread count + recent messages. Best first call for a mailbox.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Mailbox email address | |
| format | string | — | Response format |
| include_recent | number | — | Recent messages to include (0-50, default 10) |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_thread ~36
Get a conversation thread with all related messages.
| Name | Type | Req | Description |
|---|---|---|---|
| thread_id | string | yes | Thread ID |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
get_view ~51
Get one saved view by id (its filter_config + display config).
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| view_id | string | yes | Saved view id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
health_check ~51
Check if the SpiderIQ API is healthy and responsive.
| Name | Type | Req | Description |
|---|---|---|---|
| api_url | string | — | API URL (default: https://spideriq.ai) |
| workspace | string | — | Workspace name (default: default) |
No output schema declared.
No examples provided.
list_folders ~67
List a mailbox's folders (INBOX/Sent/Drafts/Trash) with per-folder totals + unread counts. email is required.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Mailbox email address (required) | |
| format | string | — | Response format |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
list_labels ~49
List label DEFINITIONS (name + colour). Applying a label to a message is update_message / bulk_update_messages.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
list_mailboxes ~42
List your SpiderMail mailboxes.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format (default: json) |
| workspace | string | — | Workspace name (default: default) |
No output schema declared.
No examples provided.
list_messages ~100
List messages in a mailbox.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format (default: json) |
| mailbox_id | string | yes | Mailbox ID or email address |
| page | number | — | Page number (default: 1) |
| per_page | number | — | Results per page (default: 20) |
| unread_only | boolean | — | Show only unread messages (default: false) |
| workspace | string | — | Workspace name (default: default) |
No output schema declared.
No examples provided.
list_outreach_campaigns ~82
List the SmartLead campaigns this connection can see (scoped by its agency client_id) — use to pick a target before pushing leads. Returns remote_campaign_id, name, status, lead_count.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| connection_id | string | yes | Outreach connection id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
list_outreach_connections ~62
List a brand's outreach sidecars (Smartlead/lemlist/Instantly): provider, workspace_id, warmup_tag, lemwarm_domains, active.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
list_outreach_senders ~55
List every sending account across a brand's outreach connections (email, provider, warmup_enabled, status, mailbox_id).
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
list_quarantine ~48
List messages auto-quarantined by the inbound prompt-injection scanner (kept out of the inbox).
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
list_security_events ~61
List mail security events — inbound prompt-injection detections, outbound credential blocks, quarantines, releases.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| limit | number | — | Max events (default 50) |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
list_snoozed ~44
List messages currently snoozed (hidden until their unsnooze time).
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
list_views ~44
List saved inbox views (named filter bundles). Apply one via get_inbox view_id.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
list_workspaces ~19
List all configured workspaces and their authentication status.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
logout ~25
Remove stored authentication credentials.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace | string | — | Workspace name (default: default) |
No output schema declared.
No examples provided.
mail_create_template ~146
Create a Jinja2 email template. template_type: signature | header | layout (has a {{ body }} slot) | full. Variables auto-detect.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Human description |
| html_source | string | yes | Jinja2 HTML source |
| is_default | boolean | — | Set as default for this type |
| name | string | yes | Unique name ([a-z0-9-_], lowercased) |
| template_type | string | — | Template type (default full) |
| text_source | string | — | Optional plain-text variant |
| variables | array | — | Variable names (auto-detected if omitted) |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
mail_delete_template ~36
Delete an email template by id.
| Name | Type | Req | Description |
|---|---|---|---|
| template_id | string | yes | Integer template id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
mail_get_template ~50
Get one email template's source + detected variables by id.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| template_id | string | yes | Integer template id |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
mail_list_templates ~39
List email templates (signature / header / layout / full).
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
mail_preview_template ~64
Render a template with sample variables and return HTML WITHOUT sending. Use before a real send. Missing variables render empty.
| Name | Type | Req | Description |
|---|---|---|---|
| template_id | string | yes | Integer template id |
| variables | object | — | Variable values for the render |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
mail_update_template ~127
Update an email template (any subset of fields).
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | New description |
| html_source | string | — | New Jinja2 source |
| is_active | boolean | — | Enable/disable |
| is_default | boolean | — | Set as default for its type |
| name | string | — | New name |
| template_id | string | yes | Integer template id |
| template_type | string | — | Template type |
| text_source | string | — | New plain-text variant |
| variables | array | — | New variable list |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
push_outreach_leads ~188
Push a SpiderIQ campaign's verified leads into a chosen SmartLead campaign. Idempotent (won't re-add). Returns added/skipped counts + account leads used. 409 if the per-account lead cap would be exceeded (pass `limit` to trim instead). BRAND-ADMIN only.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| connection_id | string | yes | Outreach connection id |
| limit | number | — | Optional: add at most N new leads (also trims to the account cap instead of erroring) |
| remote_campaign_id | string | yes | Target SmartLead campaign id (from list_outreach_campaigns) |
| smartlead_campaign_name | string | — | Optional target campaign name (for the confirmation notification) |
| spideriq_campaign_id | string | yes | Source SpiderIQ campaign id (its verified leads are pushed) |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
read_message ~64
Read a specific email message.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Response format (default: json) |
| mailbox_id | string | yes | Mailbox ID or email address |
| message_id | string | yes | Message ID |
| workspace | string | — | Workspace name (default: default) |
No output schema declared.
No examples provided.
release_message ~50
Release a quarantined message back into the inbox (only after a human judges it safe).
| Name | Type | Req | Description |
|---|---|---|---|
| message_id | string | yes | Numeric id of the quarantined message |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
remove_outreach_leads ~136
Remove tracked leads from a SmartLead campaign (frees account lead credits). Scope by spideriq_campaign_id and/or an explicit email list; with neither, removes ALL leads SpiderIQ pushed to that campaign. BRAND-ADMIN only.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | Numeric brand id |
| connection_id | string | yes | Outreach connection id |
| emails | array | — | Optional: only remove these specific lead emails |
| remote_campaign_id | string | yes | Target SmartLead campaign id |
| spideriq_campaign_id | string | — | Optional: only remove leads from this source campaign |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
request_access ~120
Request access to SpiderIQ API. This sends an approval email to the admin. After calling this, use check_access_status to poll for approval. Once approved, the token is automatically saved for subsequent API calls.
| Name | Type | Req | Description |
|---|---|---|---|
| api_url | string | — | API URL (default: https://spideriq.ai) |
| string | yes | Admin email address (the person who will approve access) | |
| project | string | — | Project name (shown in approval email) |
| scopes | array | — | Requested permission scopes (default: jobs:submit, jobs:read) |
No output schema declared.
No examples provided.
search_mail ~152
Full-text search one mailbox (subject + body) + filters. `email` (the mailbox to search) is REQUIRED — there is no all-mailbox search.
| Name | Type | Req | Description |
|---|---|---|---|
| before | string | — | Only messages before this ISO-8601 date |
| string | yes | Mailbox email address to search (required) | |
| from | string | — | Filter by sender address (substring) |
| limit | number | — | Max results (default: 20) |
| query | string | yes | Full-text query over subject + body |
| since | string | — | Only messages on/after this ISO-8601 date |
| subject | string | — | Filter by subject (substring) |
| workspace | string | — | Workspace name |
No output schema declared.
No examples provided.
send_email ~210
Send, reply to, or forward an email through a registered mailbox. Actions: send (new email), reply (respond to existing), forward (pass along). Emails are sent via the SpiderMail worker queue.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | — | Email action (default: send) |
| body_html | string | — | HTML email body (optional) |
| body_text | string | yes | Plain text email body (required) |
| cc | array | — | CC recipients |
| from_email | string | yes | Sender email (must be a registered mailbox) |
| reply_all | boolean | — | Reply to all recipients (only for reply action) |
| reply_to_message_id | number | — | Message ID to reply to (required for reply/forward) |
| subject | string | — | Subject line (required for send) |
| test | boolean | — | Route to test queue (default: false) |
| to | array | — | Recipient email addresses (required for send/forward) |
| workspace | string | — | Workspace name (default: default) |
No output schema declared.
No examples provided.