Skip to main content
Glama
igorolv

mail-mcp-server

listFolders

listFolders
Read-onlyIdempotent

Lists locally known mail folders for a connection with their keys, paths, and indexed message counts so you can select a folder key for message listing or search.

Instructions

List locally known folders in one connection, with folder keys, paths and local indexed message counts. Pass a folder's key as folder to listMessages or search; keep the same connection. synced=false means a completed folder sync has not been recorded and messages may be missing. synced=true does not guarantee current mail; use syncStatus for the latest sync's time and outcome. This tool does not discover folders on the server.

Input Schema

NameRequiredDescriptionDefault
connectionYesConnection name from listConnections

Output Schema

NameRequiredDescriptionDefault
foldersYesFolders.
connectionYesConnection name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them by disclosing the meaning of synced=false (a completed folder sync not recorded, messages may be missing) and the subtle caveat that synced=true does not guarantee current mail. That is exactly the non-obvious data-freshness behavior an agent needs before trusting results.

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?

Five short sentences, front-loaded with what the tool returns, then downstream usage, then freshness caveats, then negative scope. No sentence is redundant with another or with the structured fields.

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

Completeness5/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 shape needn't be described; the description instead fills in the interpretive context the schema cannot carry (sync semantics, cross-tool key usage, non-discovery). Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

The single parameter has 100% schema coverage and already points to listConnections, so baseline would be 3. The description adds real meaning by stressing one connection and 'keep the same connection', signalling that folder keys are scoped to a connection and misusing this yields wrong lookups.

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 (list locally known folders) plus exactly what is returned (folder keys, paths, local indexed message counts). It also scopes itself negatively against a hypothetical discovery tool ("does not discover folders on the server") and routes the folder key to listMessages/search, so an agent can place it among siblings without opening the schema.

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?

Explicitly tells the agent what to do with the output ("Pass a folder's key as folder to listMessages or search; keep the same connection") and what to consult when freshness matters (syncStatus). It lacks an explicit when-not-to-call statement, though the non-discovery scoping sentence covers most of that gap.

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