Skip to main content
Glama

messages_unbot_by_query

DestructiveIdempotent

Unmark all messages matching a query as bot-generated. Changes data. Unless the user asked for exactly this change, say which messages you will change and get their confirmation first.

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": {
      "logId": "<logId>",
      "query": "<query>",
      "severity": "<severity>"
    },
    "name": "messages_unbot_by_query"
  }
}

Input Schema

NameRequiredDescriptionDefault
toNoSearch to this date.
fromNoSearch from this date.
logIdYesThe ID (Guid) of the log.
queryYesRequired. Full-text or Lucene query, e.g. statusCode:500 && url:*\/api\/*. Searchable fields are listed in the server instructions.
hiddenNoInclude hidden messages (default false).
severityYesRequired. Severity to match: Verbose|Debug|Information|Warning|Error|Fatal.
maxMessagesNoMax messages to update per call (default 10000, max 50000). If capped is true, call again.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • removedInput schema / properties / logId / type
      Removed value: -"string"
    • removedInput schema / properties / query / type
      Removed value: -"string"
    • removedInput schema / properties / severity / type
      Removed value: -"string"
  2. Changed4 schema fields changed
    • changedInput schema / properties / hidden / description
      Previous value: -"Whether to include hidden log messages. Defaults to false."New value: +"Include hidden messages (default false)."
    • changedInput schema / properties / maxMessages / description
      Previous value: -"Maximum number of messages to update in this call (default 10000, max 50000). If more match, capped is true and the call can be repeated."New value: +"Max messages to update per call (default 10000, max 50000). If capped is true, call again."
    • changedInput schema / properties / query / description
      Previous value: -"Required Lucene query selecting the messages to unmark. Full-text or Lucene query. Available fields: applicationName, browser, category, country, detail, hidden, hostName, isBot, isBotSuggestion, isBurst, isFixed, isNew, message, messageTemplate, method, os, remoteAddr, severity, source, statusCode, time, type, url, user, userAgent, version. Example: browser:chrome || statusCode:500 || url:*\\/api\\/* && message:\"NullReferenceException\""New value: +"Required. Full-text or Lucene query, e.g. statusCode:500 && url:*\\/api\\/*. Searchable fields are listed in the server instructions."
    • changedInput schema / properties / severity / description
      Previous value: -"Severity to match: Verbose|Debug|Information|Warning|Error|Fatal. Required; use the same value as the messages_count you showed the user."New value: +"Required. Severity to match: Verbose|Debug|Information|Warning|Error|Fatal."
  3. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so 'Changes data' is partly redundant. The description does add value beyond them by mandating a confirm-first protocol and by making the blast radius ('all messages matching a query') explicit, though it says nothing about what happens to messages that are already unmarked or how results/affected counts are reported.

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?

Three short sentences, front-loaded with the action and its scope, then the destructive warning and confirmation rule. Nothing is padding and no sentence repeats another.

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?

For a destructive bulk mutation with seven parameters and no output schema, the description covers the essential safety protocol and the filtering semantics. The remaining gap is what the agent should expect back (number of messages changed, whether capping occurred beyond the schema's maxMessages note), which matters for a bulk operation.

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 logId, query, severity, from/to, hidden and maxMessages are all documented in the schema itself. The description adds only the framing that query acts as a bulk filter, not any syntax or constraint detail beyond the schema, so the baseline 3 applies.

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 ('Unmark ... as bot-generated') plus an explicit scope ('all messages matching a query'), which separates it from the single-message sibling messages_unbot and from the opposite-direction messages_bot_by_query.

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 concrete precondition for acting autonomously — only proceed without confirmation if the user asked for exactly this change — which is real when-to-use/when-to-ask guidance. It does not, however, tell the agent when to prefer this over messages_unbot for a single message or messages_bot_by_query.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources