Sequencer Event Poller MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Sequencer Event Poller MCP Serverlist replies, bounces, and unsubscribes from the last 24 hours"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sequencer Event Poller MCP Server
An MCP server for the Mamba Labs Sequencer Event Poller actor on Apify. It reads replies, bounces, unsubscribes, meetings booked, interest changes, and LinkedIn replies from your own Instantly, Smartlead, HeyReach, and lemlist accounts, and returns one flat row per event.
What's Inside
Related MCP server: mcp-clay-to-instantly-smartlead-push
What it does
Pick a time window, for example the last 24 hours, and get every event from the sequencers you have keys for in one table: vendor, event type, when it happened, the lead's email, name, and company, the campaign, and the reply text where the vendor returns it. One free run summary row gives counts per vendor and event type and says whether each vendor was read, skipped, or refused the key. With only new events on, a scheduled run returns only events an earlier run has not returned.
The actor only reads. It never creates, edits, pauses, or sends anything in a sequencer, and it never creates a campaign.
All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.
Quick start
You need Node.js 18 or newer and an Apify account with an API token.
Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:
{
"mcpServers": {
"mamba-sequencer-event-poller": {
"command": "npx",
"args": [
"-y",
"@mambalabsdev/mcp-sequencer-event-poller"
],
"env": {
"APIFY_TOKEN": "your-apify-token",
"LEMLIST_API_KEY": "your-lemlist-key"
}
}
}
}Restart the client. The poll_sequencer_events tool appears.
Prerequisites
Node.js 18 or newer.
An Apify API token from console.apify.com/account/integrations, set as
APIFY_TOKEN. The server lists its tool without a token; a call needs one.At least one of your own vendor keys:
INSTANTLY_API_KEY(API v2, read scope; Instantly API access needs a paid Instantly plan),SMARTLEAD_API_KEY,HEYREACH_API_KEY,LEMLIST_API_KEY. With none set, a call returns one summary row that says no key was given.
Example prompts
"Which leads replied in Smartlead or lemlist in the last 24 hours?"
"List every bounce and unsubscribe across my sequencers this week."
"Who replied on LinkedIn through HeyReach since Monday, and what did they say?"
Tool
poll_sequencer_events. One tool. Example arguments:
{
"since_hours": 24,
"event_types": ["reply", "linkedin_reply", "bounce", "meeting_booked"]
}Inputs
Every buyer facing input of the actor except the four vendor keys, which are read from this server's environment, never from tool arguments. Omitted inputs take the actor's own defaults.
Input | Type | Required | Description |
| integer | no | Look back this many hours, at most 2160. Default 24. |
| string | no | Optional exact window in UTC. |
| array | no | Any of reply, linkedin_reply, bounce, unsubscribe, meeting_booked, interested, not_interested, out_of_office, connection_accepted, open, click. |
| boolean | no | Skip events an earlier run returned. Default true. |
| string | no | Name for the only new events memory. |
| array | no | Read only these campaigns. |
| integer | no | Pages of 100 records per vendor query. Default 20. |
| integer | no | Event rows per run. Default 5000. |
| string | no | Optional cost cap for the run. |
Pricing
Pay per event on Apify, billed to your Apify account. Prices in USD.
Event | Free plan | Bronze | Silver | Gold |
| $0.008 | $0.0076 | $0.0072 | $0.0068 |
| $0.001 | $0.001 | $0.001 | $0.001 |
The run summary row and already delivered events are free. Mamba Labs pays the platform costs of the run.
Your keys
The actor stores no key. Each vendor key is your own: this server reads it from its environment and sends it in the run input of that run only. The vendor API calls run on your own vendor account, under that vendor's plan and rate limits.
Full actor documentation
apify.com/mambalabs/sequencer-event-poller
License
MIT. See LICENSE.
Available Tools
1 toolpoll_sequencer_eventsPoll sequencer eventsARead-only
Read replies, bounces, unsubscribes, meetings booked, interest changes, and LinkedIn replies from your own Instantly, Smartlead, HeyReach, and lemlist accounts for a time window. Returns one flat row per event (vendor, event type, time, lead email and name, company, campaign, reply text where the vendor returns it) plus one free run summary row with counts and the status of each vendor. Vendor keys are read from this server's environment (INSTANTLY_API_KEY, SMARTLEAD_API_KEY, HEYREACH_API_KEY, LEMLIST_API_KEY); vendors with no key are skipped. Read-only: it never creates, edits, pauses, or sends anything in a sequencer. A run that does not succeed is returned as an error with its run ID. Requires an APIFY_TOKEN and is billed per event row.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Optional start of the window in UTC, for example 2026-10-20T00:00:00Z. | |
| until | No | Optional end of the window in UTC. Default now. | |
| only_new | No | Skip events an earlier run already returned (free). Default true. | |
| state_key | No | Optional name for the only new events memory, so two schedules keep separate memories. | |
| max_events | No | Event rows per run, oldest first. Default 5000. | |
| event_types | No | Which events to return. Default: reply, linkedin_reply, bounce, unsubscribe, meeting_booked, interested, connection_accepted. | |
| since_hours | No | Read events from this many hours before the run, at most 2160 (90 days). Default 24. Ignored when since is set. | |
| max_charge_usd | No | Optional. The run stops before a charge that would pass this amount. | |
| max_pages_per_query | No | Pages of 100 records per vendor query. Default 20. | |
| lemlist_campaign_ids | No | Read only these lemlist campaigns (cam_ ids). Empty: all campaigns. | |
| heyreach_campaign_ids | No | Read only these HeyReach campaigns (numeric ids). Empty: all campaigns. | |
| instantly_campaign_ids | No | Read only these Instantly campaigns (UUIDs). Empty: all campaigns. | |
| smartlead_campaign_ids | No | Read only these Smartlead campaigns. Empty: all non draft campaigns. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint/destructiveHint/openWorldHint), the description discloses the auth model (env var API keys, APIFY_TOKEN required), skip behavior for missing keys, per-row billing, dedupe memory semantics via only_new, and that failed runs return an error carrying a run ID. That is substantive operational context an agent cannot get from the annotation block.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and output shape, then cost/auth/error caveats. The read-only sentence partly restates readOnlyHint/destructiveHint, but it is specific enough about what is never touched (create, edit, pause, send) to justify its length. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter, no-output-schema tool, the description covers return contents (flat event rows with named fields plus a summary row with counts and per-vendor status), error behavior, auth requirements, and cost. Combined with full schema coverage, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 13 parameters is already documented with defaults, bounds, and formats. The description adds only the time-window framing and env-key note; it does not explain parameter interactions (e.g. since vs since_hours vs only_new) beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (read/poll), the exact resource (sequencer events), enumerates the event kinds and the four vendors covered, and states the output shape. There are no sibling tools, so no differentiation is needed, and the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes the operating context clearly: events from your own accounts, within a time window, with unconfigured vendors silently skipped and billing per event row. With no sibling tools there are no alternatives to route against, but it never states an explicit 'do not use when' condition, which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
poll_sequencer_events
TDQS
Scored across 1 tool
There is exactly one tool, so there is no possibility of misselection between tools. Its purpose—read-only polling of sequencer events across four named vendors—is stated explicitly and unambiguously.
The single tool follows a clear verb_noun convention (poll_sequencer_events) in snake_case. There is no competing convention to conflict with, so the naming is fully predictable.
The narrow read-only polling domain can legitimately be covered by one tool, but a single tool is thin: there is no separate way to check vendor connection status, list available vendors, or page through results without doing a full billed pull. The surface is defensible but minimal.
For a read-only event ingestion tool, the surface is essentially complete: it returns per-event rows plus a run summary with per-vendor status and errors. Minor gaps remain—vendor/connection discovery and result filtering must be inferred from the summary row rather than queried directly.
Maintenance
Related MCP Connectors
Cold email: campaigns, leads, mailboxes, warmup and inbox replies.
Run cold email outbound from an AI agent: campaigns, leads, replies, sender accounts, autopilot.
Read LinkedIn outreach campaigns, contacts and replies, and manage campaign leads and targeting.
Automate your HeyReach workspace — manage campaigns, leads, unibox, webhooks, and pull analytics.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables interaction with Instantly.ai email outreach platform through 31 tools across accounts, campaigns, leads, emails, and analytics. Supports both local and remote deployment with multi-tenant authentication.27MIT
- AlicenseAqualityAmaintenanceEnables pushing enriched leads into Instantly or Smartlead campaigns with ICP score gating, deduplication, and dry-run previews via an Apify actor.1111 npmMIT
- AlicenseAqualityAmaintenanceEnables MCP clients to read Instantly.ai analytics and manage leads, campaigns, Unibox, sender accounts, blocklist, and webhooks, with write actions gated behind confirm prompts and configurable safety policies.4089 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to collect posts and visible comments from specified X accounts, building unique profiles and analyzing publishing cadence, content style, and high-engagement material, with resumable pagination and CSV/JSONL export backed by PostgreSQL. Supports bounded failover across multiple configured accounts and opt-in hourly monitoring of new posts, edits, and visibility changes, reporting only when asked.24MIT