Skip to main content
Glama
@kieksme/listmonk-mcp

@kieksme/listmonk-mcp

by kieksme

Manage Subscriber Lists (Bulk By Ids)

listmonk_manage_subscriber_lists_bulk
Destructive

Add, remove, or unsubscribe a defined set of subscribers by ID from one or more Listmonk lists in a single bulk operation.

Instructions

Adds, removes, or unsubscribes an explicit set of subscribers (by id) from one or more target lists.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "ids": "<ids>",
      "action": "<action>",
      "target_list_ids": "<target_list_ids>"
    },
    "name": "listmonk_manage_subscriber_lists_bulk"
  }
}

Input Schema

NameRequiredDescriptionDefault
idsYesSubscriber ids to modify.
actionYes
statusNoSubscription status to set when action is 'add'.
target_list_idsYesList ids to add/remove/unsubscribe from.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.3.0

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing beyond that: it does not say what actually happens on partial failure (some ids invalid, some lists missing), whether repeated calls double-apply, or how 'unsubscribe' as an action differs in scope from setting status='unsubscribed'. For a bulk destructive mutation this is a real gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence with the verbs and the scoping qualifier front-loaded; nothing is wasted. It is arguably too short for a destructive bulk tool, but there is no padding or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent bulk mutation over multiple ids and multiple lists, the description leaves out failure semantics, the status/action interaction, and whether unsubscribing is global or per-list. No output schema exists to offload return-value information, so the description should carry more of this burden than it does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, with 'ids' and 'target_list_ids' self-documented and the two enums listed without prose. The description echoes the action values but does not explain the key ambiguity: that 'status' only applies when action='add', nor what the default status is or how it interacts with an 'unsubscribe' action. Baseline 3 is appropriate given the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a concrete set of verbs (adds, removes, unsubscribes) against a specific resource (an explicit set of subscribers by id, from one or more target lists). That is enough to separate it from the single-subscriber siblings and from the by-query variant, though the routing to listmonk_manage_subscriber_lists_by_query is left to the title rather than stated in the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over the near-identical siblings listmonk_manage_subscriber_lists_by_query or listmonk_manage_subscriber_list_membership, and no stated prerequisites such as required permissions or whether lists must already exist. The only implied usage is the '(by id)' qualifier, which the agent must infer as the selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools