@mambalabsdev/mcp-sequencer-event-poller 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Sequencer Event Poller MCP Server
2
2
 
3
- [![Smithery](https://smithery.ai/badge/mambabuilt/mcp-sequencer-event-poller)](https://smithery.ai/servers/mambabuilt/mcp-sequencer-event-poller) [![Glama score](https://glama.ai/mcp/servers/mambalabsdev/mcp-sequencer-event-poller/badges/score.svg)](https://glama.ai/mcp/servers/mambalabsdev/mcp-sequencer-event-poller) [![MCP Registry](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fregistry.modelcontextprotocol.io%2Fv0%2Fservers%3Fsearch%3Dcom.mambabuilt%252Fmcp-sequencer-event-poller%26limit%3D1&query=%24.servers%5B0%5D._meta%5B%22io.modelcontextprotocol.registry%2Fofficial%22%5D.status&label=mcp%20registry&color=blue)](https://registry.modelcontextprotocol.io/v0/servers?search=com.mambabuilt/mcp-sequencer-event-poller&limit=1) [![npm version](https://img.shields.io/npm/v/@mambalabsdev/mcp-sequencer-event-poller)](https://www.npmjs.com/package/@mambalabsdev/mcp-sequencer-event-poller) [![npm downloads](https://img.shields.io/npm/dm/@mambalabsdev/mcp-sequencer-event-poller)](https://www.npmjs.com/package/@mambalabsdev/mcp-sequencer-event-poller) [![license](https://img.shields.io/github/license/mambalabsdev/mcp-sequencer-event-poller)](https://github.com/mambalabsdev/mcp-sequencer-event-poller/blob/main/LICENSE) [![mcpservers.org](https://img.shields.io/badge/mcpservers.org-listed-blue)](https://mcpservers.org/servers/mambalabsdev/mcp-sequencer-event-poller)
3
+ [![Glama score](https://glama.ai/mcp/servers/mambalabsdev/mcp-sequencer-event-poller/badges/score.svg)](https://glama.ai/mcp/servers/mambalabsdev/mcp-sequencer-event-poller) [![MCP Registry](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fregistry.modelcontextprotocol.io%2Fv0%2Fservers%3Fsearch%3Dcom.mambabuilt%252Fmcp-sequencer-event-poller%26limit%3D1&query=%24.servers%5B0%5D._meta%5B%22io.modelcontextprotocol.registry%2Fofficial%22%5D.status&label=mcp%20registry&color=blue)](https://registry.modelcontextprotocol.io/v0/servers?search=com.mambabuilt/mcp-sequencer-event-poller&limit=1) [![npm version](https://img.shields.io/npm/v/@mambalabsdev/mcp-sequencer-event-poller)](https://www.npmjs.com/package/@mambalabsdev/mcp-sequencer-event-poller) [![npm downloads](https://img.shields.io/npm/dm/@mambalabsdev/mcp-sequencer-event-poller)](https://www.npmjs.com/package/@mambalabsdev/mcp-sequencer-event-poller) [![license](https://img.shields.io/github/license/mambalabsdev/mcp-sequencer-event-poller)](https://github.com/mambalabsdev/mcp-sequencer-event-poller/blob/main/LICENSE) [![mcpservers.org](https://img.shields.io/badge/mcpservers.org-listed-blue)](https://mcpservers.org/servers/mambalabsdev/mcp-sequencer-event-poller)
4
+
5
+ <a href="https://mcprush.com/to/sequencer-event-poller-mcp?ref=badge"><img width="380" height="200" src="https://mcprush.com/badge/sequencer-event-poller-mcp/card.svg" alt="Sequencer Event Poller MCP server" /></a>
4
6
 
5
7
  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.
6
8
 
@@ -69,25 +71,25 @@ Restart the client. The `poll_sequencer_events` tool appears.
69
71
 
70
72
  ```json
71
73
  {
72
- "since_hours": 24,
74
+ "since_hours": "24",
73
75
  "event_types": ["reply", "linkedin_reply", "bounce", "meeting_booked"]
74
76
  }
75
77
  ```
76
78
 
77
79
  ## Inputs
78
80
 
79
- 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.
81
+ 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. Numbers and yes or no options are sent as text ("24", "true"), which is what the actor accepts; a value that does not parse comes back as one free row that names the field.
80
82
 
81
83
  | Input | Type | Required | Description |
82
84
  |---|---|---|---|
83
- | `since_hours` | integer | no | Look back this many hours, at most 2160. Default 24. |
85
+ | `since_hours` | string | no | Look back this many hours, 1 to 2160, as text such as "24". Default 24. |
84
86
  | `since`, `until` | string | no | Optional exact window in UTC. |
85
87
  | `event_types` | array | no | Any of reply, linkedin_reply, bounce, unsubscribe, meeting_booked, interested, not_interested, out_of_office, connection_accepted, open, click. |
86
- | `only_new` | boolean | no | Skip events an earlier run returned. Default true. |
88
+ | `only_new` | string | no | "true" or "false". Skip events an earlier run returned. Default true. |
87
89
  | `state_key` | string | no | Name for the only new events memory. |
88
90
  | `instantly_campaign_ids`, `smartlead_campaign_ids`, `heyreach_campaign_ids`, `lemlist_campaign_ids` | array | no | Read only these campaigns. |
89
- | `max_pages_per_query` | integer | no | Pages of 100 records per vendor query. Default 20. |
90
- | `max_events` | integer | no | Event rows per run. Default 5000. |
91
+ | `max_pages_per_query` | string | no | Pages of 100 records per vendor query, 1 to 100, as text. Default 20. |
92
+ | `max_events` | string | no | Event rows per run, up to 50000, as text. Default 5000. |
91
93
  | `max_charge_usd` | string | no | Optional cost cap for the run. |
92
94
 
93
95
  ## Pricing
package/build/index.js CHANGED
@@ -188,7 +188,8 @@ function keysFromEnv() {
188
188
  out.lemlist_api_key = k3;
189
189
  return out;
190
190
  }
191
- // Sequencer Event Poller (immutable actor ID S6s8Rjd61tGdrMRk4). Every buyer facing input of the actor is exposed except the four vendor keys, which come from the environment (see keysFromEnv).
191
+ // Sequencer Event Poller (immutable actor ID S6s8Rjd61tGdrMRk4). Every buyer facing input of the actor is exposed except the four vendor keys, which come from the environment (see keysFromEnv). The actor takes numbers and booleans as strings, so those inputs are strings here too.
192
+ const bool = () => z.enum(["true", "false"]).optional();
192
193
  server.registerTool("poll_sequencer_events", {
193
194
  title: "Poll sequencer events",
194
195
  description: "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.",
@@ -200,9 +201,7 @@ server.registerTool("poll_sequencer_events", {
200
201
  openWorldHint: true,
201
202
  },
202
203
  inputSchema: {
203
- since_hours: z.number().int().min(1).max(2160)
204
- .optional()
205
- .describe("Read events from this many hours before the run, at most 2160 (90 days). Default 24. Ignored when since is set."),
204
+ since_hours: z.string().optional().describe("Read events from this many hours before the run, 1 to 2160 (90 days). Default 24. Ignored when since is set."),
206
205
  since: z.string()
207
206
  .optional()
208
207
  .describe("Optional start of the window in UTC, for example 2026-10-20T00:00:00Z."),
@@ -212,9 +211,7 @@ server.registerTool("poll_sequencer_events", {
212
211
  event_types: z.array(z.enum(["reply", "linkedin_reply", "bounce", "unsubscribe", "meeting_booked", "interested", "not_interested", "out_of_office", "connection_accepted", "open", "click"]))
213
212
  .optional()
214
213
  .describe("Which events to return. Default: reply, linkedin_reply, bounce, unsubscribe, meeting_booked, interested, connection_accepted."),
215
- only_new: z.boolean()
216
- .optional()
217
- .describe("Skip events an earlier run already returned (free). Default true."),
214
+ only_new: bool().describe("Skip events an earlier run already returned (free). Default true."),
218
215
  state_key: z.string()
219
216
  .optional()
220
217
  .describe("Optional name for the only new events memory, so two schedules keep separate memories."),
@@ -230,12 +227,8 @@ server.registerTool("poll_sequencer_events", {
230
227
  lemlist_campaign_ids: z.array(z.string())
231
228
  .optional()
232
229
  .describe("Read only these lemlist campaigns (cam_ ids). Empty: all campaigns."),
233
- max_pages_per_query: z.number().int().min(1).max(100)
234
- .optional()
235
- .describe("Pages of 100 records per vendor query. Default 20."),
236
- max_events: z.number().int().min(1).max(50000)
237
- .optional()
238
- .describe("Event rows per run, oldest first. Default 5000."),
230
+ max_pages_per_query: z.string().optional().describe("Pages of 100 records per vendor query, 1 to 100. Default 20."),
231
+ max_events: z.string().optional().describe("Event rows per run, oldest first, up to 50000. Each event row is billed. Default 5000."),
239
232
  max_charge_usd: z.string()
240
233
  .optional()
241
234
  .describe("Optional. The run stops before a charge that would pass this amount."),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mambalabsdev/mcp-sequencer-event-poller",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "MCP server for Sequencer Event Poller. Replies, bounces, unsubscribes, meetings, and LinkedIn replies from your own Instantly, Smartlead, HeyReach, and lemlist accounts, one row per event. Read only. Runs on Apify.",
5
5
  "type": "module",
6
6
  "bin": {