Skip to main content
Glama
@kieksme/listmonk-mcp

@kieksme/listmonk-mcp

by kieksme

Update Mailing List

listmonk_update_list
DestructiveIdempotent

Update fields on an existing mailing list by ID, changing only the values you provide. Use it to modify list name, type, opt-in mode, tags, or description without overwriting unspecified settings.

Instructions

Updates fields on an existing mailing list by id. Only provided fields are changed.

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": {
      "list_id": "<list_id>"
    },
    "name": "listmonk_update_list"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNo
tagsNo
typeNo
optinNo
list_idYesNumeric id.
descriptionNo
response_formatNoOutput format: 'markdown' for human-readable text (default) or 'json' for machine-readable data.markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.3.0

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is partly covered. The description usefully adds partial-update semantics ('only provided fields are changed'), which is consistent with idempotentHint, but it never explains why the operation is flagged destructive — e.g. whether switching type from public to private or optin from single to double affects existing subscribers or confirmations.

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?

Two short sentences, front-loaded with the action and resource, with the partial-update rule immediately following. No filler or redundancy.

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

Completeness3/5

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

For a mutation tool with a destructive hint, no output schema, and low parameter coverage, the description is thin on side effects and return behavior. The partial-update statement covers the most important calling convention, but an agent still lacks enough to predict the impact of changing type or optin.

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 only 29% across 7 parameters, so the description should compensate more than it does. It does add one genuinely useful semantic — that omitted fields are left untouched — but it says nothing about the meaning or consequences of name, tags, type, optin, or description, leaving the enum-bearing fields to the schema alone.

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?

States a specific verb and resource ('Updates fields on an existing mailing list by id'), which clearly separates it from create_list, get_list, and delete_list in the sibling set. It stops short of naming those siblings explicitly, so it lands at 4 rather than 5.

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 over listmonk_create_list or listmonk_get_list, no prerequisites, and no note about what happens to list membership when type or optin changes. The only usage-adjacent statement is the partial-update rule, which is behavioral rather than routing guidance.

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