Skip to main content
Glama

Fluxmail Cloud

Search multiple accounts

search_emails_batch
Read-only

Search up to 20 accounts with one portable query and return one result group per account.

Input Schema

NameRequiredDescriptionDefault
toNo
fromNo
readNo
afterNoYYYY-MM-DD received date, inclusive in UTC
queryYesTyped portable search syntax
beforeNoYYYY-MM-DD received date, exclusive in UTC
folderNo
starredNo
subjectNo
accountsYes
pageSizeNoDefaults to 25
hasAttachmentNo
includeSnippetNoRequest or suppress message previews
includeSearchContextNoInclude a match-centered body excerpt; requires a portable text query

Output Schema

NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "data": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "exhausted": {
      +          "type": "boolean"
      +        },
      +        "groups": {
      +          "items": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "accountId": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "accountId"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "groups",
      +        "exhausted"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "data"
      +  ],
      +  "type": "object"
      +}
  2. Changed10 schema fields changed
    • addedInput schema / properties / accounts / items / properties / accountId / maxLength
      Added value: +512
    • changedInput schema / properties / after / anyOf
      Previous value: -[
      -  {
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / before / anyOf
      Previous value: -[
      -  {
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / from / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2048,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / from / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedInput schema / properties / query / maxLength
      Added value: +2048
    • addedInput schema / properties / subject / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2048,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / subject / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedInput schema / properties / to / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2048,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / to / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
  3. Changed40 schema fields changed
    • changedInput schema / $schema
      Previous value: -"https://json-schema.org/draft/2020-12/schema"New value: +"http://json-schema.org/draft-07/schema#"
    • removedInput schema / properties / accounts / items / properties / accountId / maxLength
      Removed value: -512
    • addedInput schema / properties / accounts / items / properties / pageToken / anyOf
      Added value: +[
      +  {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / accounts / items / properties / pageToken / minLength
      Removed value: -1
    • removedInput schema / properties / accounts / items / properties / pageToken / type
      Removed value: -"string"
    • addedInput schema / properties / after / anyOf
      Added value: +[
      +  {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / after / description
      Added value: +"YYYY-MM-DD received date, inclusive in UTC"
    • removedInput schema / properties / after / format
      Removed value: -"date"
    • removedInput schema / properties / after / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • removedInput schema / properties / after / type
      Removed value: -"string"
    • addedInput schema / properties / before / anyOf
      Added value: +[
      +  {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / before / description
      Added value: +"YYYY-MM-DD received date, exclusive in UTC"
    • removedInput schema / properties / before / format
      Removed value: -"date"
    • removedInput schema / properties / before / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • removedInput schema / properties / before / type
      Removed value: -"string"
    • addedInput schema / properties / folder / anyOf
      Added value: +[
      +  {
      +    "enum": [
      +      "inbox",
      +      "sent",
      +      "drafts",
      +      "archive",
      +      "spam",
      +      "trash",
      +      "all"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / folder / enum
      Removed value: -[
      -  "inbox",
      -  "sent",
      -  "drafts",
      -  "archive",
      -  "spam",
      -  "trash",
      -  "all"
      -]
    • removedInput schema / properties / folder / type
      Removed value: -"string"
    • removedInput schema / properties / from / maxLength
      Removed value: -2048
    • changedInput schema / properties / from / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / hasAttachment / type
      Previous value: -"boolean"New value: +[
      +  "boolean",
      +  "null"
      +]
    • addedInput schema / properties / includeSearchContext / description
      Added value: +"Include a match-centered body excerpt; requires a portable text query"
    • changedInput schema / properties / includeSearchContext / type
      Previous value: -"boolean"New value: +[
      +  "boolean",
      +  "null"
      +]
    • addedInput schema / properties / includeSnippet / description
      Added value: +"Request or suppress message previews"
    • changedInput schema / properties / includeSnippet / type
      Previous value: -"boolean"New value: +[
      +  "boolean",
      +  "null"
      +]
    • addedInput schema / properties / pageSize / anyOf
      Added value: +[
      +  {
      +    "maximum": 100,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / pageSize / default
      Removed value: -25
    • addedInput schema / properties / pageSize / description
      Added value: +"Defaults to 25"
    • removedInput schema / properties / pageSize / maximum
      Removed value: -100
    • removedInput schema / properties / pageSize / minimum
      Removed value: -1
    • removedInput schema / properties / pageSize / type
      Removed value: -"integer"
    • addedInput schema / properties / query / description
      Added value: +"Typed portable search syntax"
    • removedInput schema / properties / query / maxLength
      Removed value: -2048
    • changedInput schema / properties / read / type
      Previous value: -"boolean"New value: +[
      +  "boolean",
      +  "null"
      +]
    • changedInput schema / properties / starred / type
      Previous value: -"boolean"New value: +[
      +  "boolean",
      +  "null"
      +]
    • removedInput schema / properties / subject / maxLength
      Removed value: -2048
    • changedInput schema / properties / subject / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / to / maxLength
      Removed value: -2048
    • changedInput schema / properties / to / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "query",
      -  "accounts"
      -]New value: +[
      +  "accounts",
      +  "query"
      +]
  4. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  5. Added

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavior — it fans out across up to 20 accounts and returns a separate result group per account — but says nothing about per-account pagination tokens, partial failures on one account, or result ordering, which are the real behavioral risks for a fan-out search.

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?

A single sentence with zero filler, front-loading the scope cap and the return shape. Nothing is repeated from the title or annotations.

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?

An output schema exists, so return values needn't be described, and annotations cover safety. But for a 14-parameter, 20-account fan-out tool the description leaves material gaps: how pagination works per account, whether a failure in one account aborts the batch, and what "portable query" syntax is accepted.

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 only 43% across 14 parameters, so the description needs to compensate and largely does not. "One portable query" hints the same query is applied to every account, but the typed query syntax, the per-account pageToken semantics, pageSize defaults, and the interaction between includeSearchContext and a text query are left to the schema's terse or absent field descriptions.

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 ("Search ... accounts") plus a hard scope cap ("up to 20 accounts") that matches the schema's maxItems=20, and it discloses the return shape ("one result group per account"). It does not name the single-account sibling search_emails, so differentiation relies on the word "batch"/"up to 20 accounts" rather than an explicit contrast.

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?

Use is only implied: the multi-account fan-out and the shared query suggest this tool is for cross-account searches, and by extension search_emails is for a single account. There is no explicit when-to-use, when-not, or named alternative, and nothing about prerequisites such as account IDs being valid/connected.

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