Skip to main content
Glama
monk24215

listmonk-mcp

by monk24215

Change subscriber list membership

subscribers_lists_change

Bulk add, remove, or unsubscribe subscribers from one or more Listmonk lists while preserving their existing list memberships.

Instructions

Bulk add, remove, or unsubscribe subscribers from lists without replacing their other memberships. action: add | remove | unsubscribe.

Input Schema

NameRequiredDescriptionDefault
actionYes
statusNo
list_idsYes
subscriber_idsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds meaningful partial-update semantics ('without replacing their other memberships'), but stays silent on whether 'unsubscribe' triggers a global unsubscribe, what 'status' does, or failure/partial-success behavior for bulk ops.

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?

Two tight sentences, front-loaded with the operation and scope, with the action values appended inline. The trailing enum repetition is mildly redundant but cheap and useful at a glance.

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 4-parameter mutation tool with 0% schema coverage and no output schema, the description omits the 'status' parameter entirely, says nothing about what the response reports for bulk operations, and gives no error or permission context. It is under-specified relative to the tool's complexity.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It only restates the action enum (already in the schema) and never explains the 'status' parameter or the semantics of the list_ids/subscriber_ids arrays (bulk cardinality, all-or-nothing vs per-item results), which are the core of the tool.

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 names a specific verb set (add/remove/unsubscribe) and resource (subscriber list membership) plus bulk scope, which is clearly distinct from subscriber_create/update/delete siblings. It does not explicitly name a sibling, but 'without replacing their other memberships' signals the differentiation from whole-record update tools.

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

Usage Guidelines3/5

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

Bulk membership mutation is implied as the use case, and the 'without replacing other memberships' clause hints at when to prefer this over a full update. However, there is no explicit when/when-not guidance versus subscriber_update, nor any note on prerequisites such as list existence or confirmation status.

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