Skip to main content
Glama
tecspda

listmonk-mcp-ts

add_subscriber

Create a new subscriber with name and email, optionally subscribing them to mailing lists; returns the new subscriber ID and fails if the email already exists.

Instructions

Create a new subscriber and optionally subscribe them to mailing lists. Fails if a subscriber with the same email already exists. Returns the new subscriber ID. To change an existing subscriber use update_subscriber.

Input Schema

NameRequiredDescriptionDefault
nameYesSubscriber name
emailYesSubscriber email
listsNoIDs of the mailing lists to subscribe them to (see get_mailing_lists); empty means no lists
statusNoenabled (can receive mail), disabled, or blocklisted (never mailed)enabled
attributesNoFree-form JSON object stored with the subscriber, e.g. {"city": "Berlin"}
preconfirmNoIf true, subscriptions to double opt-in lists are marked confirmed and no confirmation email is sent

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.1.1
    • changedInput schema / properties / attributes / description
      Previous value: -"Custom subscriber attributes"New value: +"Free-form JSON object stored with the subscriber, e.g. {\"city\": \"Berlin\"}"
    • changedInput schema / properties / lists / description
      Previous value: -"Mailing list IDs"New value: +"IDs of the mailing lists to subscribe them to (see get_mailing_lists); empty means no lists"
    • changedInput schema / properties / preconfirm / description
      Previous value: -"Whether to preconfirm subscriptions"New value: +"If true, subscriptions to double opt-in lists are marked confirmed and no confirmation email is sent"
    • changedInput schema / properties / status / description
      Previous value: -"Subscriber status (enabled, disabled, blocklisted)"New value: +"enabled (can receive mail), disabled, or blocklisted (never mailed)"
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-idempotent, non-destructive, so the safety profile is covered. The description adds context beyond that: duplicate-email failure semantics and the returned subscriber ID. It omits that confirmation emails may be sent for double opt-in lists by default, which is a real side effect an agent should anticipate.

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

Conciseness5/5

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

Four short sentences, front-loaded with the primary action, then failure mode, return value, and the disambiguation hint. Nothing is repeated or wasted.

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

Completeness4/5

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

With no output schema, the description usefully states what is returned (the new subscriber ID), and annotations handle the mutation profile. The one meaningful gap is the email-sending side effect for double opt-in lists, which is only discoverable by reading the preconfirm parameter description.

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 100%, so every parameter including the nested attributes object and the preconfirm flag is already documented in the schema. The description mentions subscribing to lists but adds no format, default, or constraint detail beyond that, making the baseline 3 appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Create a new subscriber') plus the optional side effect ('optionally subscribe them to mailing lists'). It also explicitly distinguishes itself from the sibling update_subscriber, leaving no ambiguity about which tool handles which case.

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

Usage Guidelines4/5

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

Gives a clear routing rule: use this to create, use update_subscriber to change an existing subscriber, and note that a duplicate email causes failure. It doesn't spell out what to do on that failure (e.g., fall back to update_subscriber or get_subscriber_by_email), but the alternative is named.

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