Fastmail MCP Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation5/5
Each tool targets a distinct resource and action: account info, email listing/detail/sending, masked email CRUD, read/flag state, folders, and unread count. There is no meaningful overlap that would cause an agent to select the wrong tool.
Naming Consistency5/5All tool names follow a consistent snake_case pattern with the fastmail_ prefix and verb_noun structure (get, list, send, create, update, delete, mark). The naming is predictable and makes the toolset easy to navigate.
Tool Count5/5With 12 tools, the server is well-scoped for its domain: email operations, masked email management, folders, and account info. Each tool has a clear purpose, and the count is neither bloated nor too thin.
Completeness3/5Masked emails have full CRUD coverage and core email reading/sending/flagging is supported. However, notable gaps exist in the email lifecycle: there is no delete, move/archive, or folder mutation capability, so agents cannot perform common cleanup or organization workflows.
Average 3.7/5 across 12 of 12 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states that a masked email is created. It does not mention side effects, permission requirements, uniqueness constraints, or what happens on duplicate creation. The word 'create' signals mutation, but little else is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no redundant words. It front-loads the core action and resource, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations and no output schema, the description is too sparse. It does not explain what happens after creation, whether creation is idempotent, what errors might arise, or what the agent should expect in the response. The schema covers parameters, but broader operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the input schema. The tool description adds no parameter-level meaning beyond what the schema provides, which is acceptable under the baseline, but it also does not compensate for any nuanced constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('masked email address'), which clearly distinguishes this tool from its siblings like list, update, and delete masked email tools. It also adds the privacy-protection purpose, reinforcing the domain intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool is for creating masked emails, but it provides no explicit guidance on when to use it versus alternatives, nor any conditions, prerequisites, or exclusions. An agent must infer usage solely from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only repeats 'delete' without adding context beyond the tool name. It does not indicate whether deletion is permanent, whether it affects email delivery, or whether any confirmation or special permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no filler or repetition. However, it is so minimal that it borders on under-specification, contributing little more than the tool name already conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete operation, the description is minimally viable: the agent can determine what to do and which parameter to supply. Still, it lacks critical context such as irreversibility, effects on masked email functionality, and any output or confirmation expectations, especially given that no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, emailId, is already documented as 'The masked email ID to delete'. The description adds no extra meaning or guidance beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Delete') and a specific resource ('masked email address'), directly matching the tool's purpose. It distinguishes itself from sibling tools like list, create, and update masked email by clearly indicating a destructive removal action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as update_masked_email or list_masked_emails. There is no mention of prerequisites, irreversibility, or context in which deletion is appropriate, leaving the agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. 'Get' implies a read-only operation and the description names the return categories, but it does not disclose authentication expectations, session-token sensitivity, or whether any cached state is involved. This is thin but not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the operation, with no filler. The brevity is appropriate for a zero-parameter getter, and every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with zero parameters, and the description covers the high-level purpose. However, with no output schema, the agent is left without details on the shape or content of the returned account information and session details. This is adequate for calling the tool but not fully complete for interpreting its response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema coverage, which is the baseline-4 case; there is no parameter-level meaning for the description to add. The description correctly focuses on the operation rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and resource ('Fastmail account information and session details'), which clearly separates it from the email, masked-email, and folder siblings. It does not explicitly state how it differs from other account-level operations, but no such sibling exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It simply states what it does, with no prerequisites, exclusions, or context to help an agent decide whether this is the right tool for account-related information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavior. It states only that all masked email addresses are listed, without addressing read-only guarantees, authentication needs, pagination, or response format. The parenthetical clarifies the resource but not the tool's behavioral characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with a useful parenthetical clarifier. Every word serves a purpose, and it avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool without an output schema, the description gives the core purpose but omits return value structure, pagination, or any operational caveats. It is adequate for selecting the tool but not fully complete for an agent expecting to parse the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters with 100% coverage, so there is nothing for the description to add beyond the schema. Baseline for zero-parameter tools is 4, and the description does not need to explain parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('masked email addresses') with a clarifying parenthetical defining them as privacy-focused aliases. It is clearly distinct from listing regular emails, though it does not explicitly reference sibling tools to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus the sibling tools such as fastmail_create_masked_email or fastmail_list_emails. It only restates the tool's function without any exclusions or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it only says 'List' and 'Supports filtering'. It does not state whether the operation is read-only, how results are ordered or paginated, or what data is returned about each message.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse sentences carry the core purpose and available filters with no redundant words. The primary scope is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with no required parameters and full schema coverage, the description is adequate but not rich. There is no output schema, so the description should have at least hinted at return shape (summary vs full content) or ordering to make the tool fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description loosely echoes the folder, unread, and search parameters but adds no extra semantics such as what search targets (subject, body, etc.) or how limit interacts with pagination.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (List) and resource (emails), and scopes it to inbox or other folders. This distinguishes it from sibling tools like fastmail_get_email (single message) and fastmail_list_masked_emails (masked addresses).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool for retrieving email messages with optional filters, but it never explicitly contrasts it with alternatives or states when-not-to-use. An agent can infer use from 'List emails' but receives no direct routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb 'Get' implies a read-only retrieval, which is useful but minimally disclosed. With no annotations provided, the description carries the full burden for behavioral transparency; it does not explicitly state that the email is not modified, not marked as read, or that no side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads the action and resource, and every word earns its place for a tool of this simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter retrieval tool, the description is adequately complete: it names the input (email ID) and the general outcome (detailed information). The lack of an output schema makes the exact return fields unspecified, but this does not block correct invocation for a simple get-by-ID operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, so the schema already documents emailId sufficiently. The description only reinforces 'by its ID' without adding format, source, or usage nuance beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed information') and the resource ('specific email') identified by ID. It is distinguishable from list_emails because it targets a single email, but it does not explicitly name or contrast sibling alternatives, and 'detailed information' is somewhat vague about what fields are returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by its ID' implicitly communicates a prerequisite: the caller must already have an email ID. However, the description does not state when to prefer this over list_emails or other siblings, nor does it provide any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself carries the behavioral burden; it plainly states that the tool toggles read state in either direction. However, it does not disclose auth requirements, idempotency, error behavior, or whether the operation is reversible/side-effect-free, so disclosure is only partially complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence contains the full core behavior with no filler or repetition. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple two-parameter state toggle; the description plus schema sufficiently covers correct invocation. It lacks response/error details, but those are not essential for selecting and invoking this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning beyond the schema; the read parameter's own description already explains true/false, and emailId is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('mark') and resource ('email') and names the exact state ('read or unread'), which clearly distinguishes it from the sibling fastmail_mark_email_flagged. An agent can tell at a glance what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to choose this tool over alternatives or any prerequisites/exclusions. It never mentions fastmail_mark_email_flagged or how read-state changes differ from other email operations, so the agent must infer usage solely from the operation name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of disclosing that this is a state-changing operation. 'Flag or unflag an email' clearly states the mutation and its both possible outcomes, and '(star)' adds concrete semantic context. It does not cover permissions or return values, but for a simple boolean toggle these are less critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of five words plus a parenthetical; every word earns its place. The core action is front-loaded before any clarification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage, the description plus schema fully specify how to invoke the operation. It does not mention the response shape, but no output schema exists and the operation is simple enough that this omission does not block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, and both parameters already have clear descriptions ('The email ID', 'Flag (true) or unflag (false)'). The description only adds the 'star' synonym, which is marginal extra meaning. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with the specific verbs 'Flag or unflag' and identifies the resource ('an email'), then clarifies the meaning with '(star)'. This makes the operation unambiguous even though it does not explicitly contrast with sibling tools like fastmail_mark_email_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when the agent wants to set or remove the starred flag on an email, but it gives no explicit when-to-use or when-not-to-use guidance. No alternatives are named, so the agent must infer the boundary from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. It discloses that the tool mutates the masked email's state or description, which is valuable, but it does not explain side effects, permissions, reversibility, or the meaning/impact of the 'pending' state seen in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word earns its place by communicating the resource and the specific update operations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, the schema covers all parameters, and sibling tools provide surrounding context. However, with no annotations and no output schema, the description omits behavioral details like what a successful update returns, whether enabling/disabling has immediate effects, and what 'pending' implies—useful context for an agent invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no parameter-specific meaning beyond confirming that enable/disable relate to state and description can be changed, which aligns with but does not enhance the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and a clear resource ('a masked email'), and immediately enumerates the three actions it supports: enable, disable, or change description. This distinguishes it from sibling tools like create/delete/list masked emails without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly communicates that the tool is for modifying an existing masked email, which is distinct from creating, deleting, or listing them. It does not explicitly say when not to use it or name alternatives, but the context is clear enough from the action and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a non-mutating read operation and defines folder scoping, but it does not explicitly state that no emails are modified, how the count is computed, or what happens for invalid folder names. This is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence says exactly what the tool does and where it operates. There is no filler, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter read tool, the description and schema together cover the essential call context. Return value is implied by 'unread email count'. Minor gaps like invalid-folder behavior and explicit non-mutation are not critical for this tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the folder parameter already has a description and default value. The description reinforces 'inbox or a specific folder' but adds no new semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('unread email count'), and defines scope ('inbox or a specific folder'). This clearly distinguishes it from siblings like list_emails, get_email, and mark_email_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use the tool: whenever an unread count for the inbox or a named folder is needed. It does not explicitly mention alternatives or exclusions, but the use case is clear enough given the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself must communicate behavior. It correctly indicates a read-only listing operation, but it does not disclose output shape, whether hidden or system folders are included, ordering, or error behavior. Still, for a zero-parameter list tool, the core behavior is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single four-word sentence conveys the operation and scope with no filler. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, no parameters, and sibling context, the description is nearly complete for selecting and calling the tool. A minor gap is the lack of explicit return-format detail since no output schema exists, but 'List all email folders' sufficiently implies a returned collection of folders.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so there is no parameter information to add. The baseline of 4 applies because the description does not need to compensate for undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('all email folders'), and the resource type distinguishes it from sibling tools such as fastmail_list_emails and fastmail_get_account. The scope ('all') also signals a no-filter enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when the agent needs the complete set of email folders. However, the description does not explicitly state when to prefer it over alternatives, mention related workflow steps (e.g., using folder IDs with fastmail_list_emails), or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses the draft-first default, the configurable FASTMAIL_DRAFT_BY_DEFAULT behavior, the server-side FASTMAIL_FOOTER_HTML appending, and the prohibition on AI self-identification. It does not mention error handling or rate limits, but the key behavioral traits that affect invocation are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a clear one-sentence purpose, followed by an IMPORTANT directive on draft-vs-send behavior, then succinct identity/signature rules. Every sentence carries meaningful operational guidance, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and no annotations, the description covers the critical context: when to draft vs send, identity constraints, signature policy, and footer behavior. It doesn't describe return values or failure modes, but those are not essential for correct invocation and schema already documents parameters fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds extra meaning by explaining the saveDraft default preference and tying the from field to the account's own identity, which goes beyond the schema text. This lifts it above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: compose and send (or save as draft) an email from the account's own Fastmail identity. This clearly differentiates it from sibling tools like fastmail_list_emails, fastmail_get_email, and masked-email management tools, leaving no ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit, actionable guidance: default to draft unless the context implies immediate send (explicit instruction, routine automated alert, or established-contact follow-up). It also clearly instructs to send as the account owner and never add AI/agent signatures, with server-side footer configuration noted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mattmaas/fastmail-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server