Skip to main content
Glama
gamalan

mcp-email-client

by gamalan

Mail Client MCP

Overview

Mail Client MCP is a Python-based email client that allows users to manage email configurations, send emails, and read the latest unread emails. It provide MCP for Claude Desktop

Related MCP server: mcp-imap

Features

  • List all email configurations

  • Add new email configurations

  • Update existing email configurations

  • Delete email configurations

  • Send emails using specified configurations

  • Read the latest 5 unread emails

Installation

  1. Clone the repository:

    git clone https://github.com/gamalan/mcp-email-client.git
    cd mcp-email-client
  2. Install uv Linux/MacOS

    curl -LsSf https://astral.sh/uv/install.sh | sh

    Windows

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  3. Install dependencies:

    uv sync

Configuration

Configuration example using Claude Desktop

{
  "mcpServers": {
    "mcp_email_client": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "D:\\Project\\RepoPath", 
        "mcp_email_client"
      ]
    }
  }
}

or in VsCode

{
    "servers": {
        "any-name": {
            "type": "stdio",
            "command": "/path/to/uv",
            "args": [
                "run",
                "--directory",
                "/path/to/repo",
                "run_mcp_server.py",
            ]
        }
    }
}

Available Tools

12 tools
add_email_configC

Add a new email configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
inbound_sslYes
inbound_hostYes
inbound_portYes
inbound_userYes
outbound_sslNo
outbound_hostNo
outbound_portNo
outbound_userNo
inbound_passwordYes
is_outbound_equalYes
outbound_passwordNo

TDQS

C2.2/5.0
Behavior1/5

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

With no annotations and no additional description, the tool's behavior is entirely opaque. It does not mention side effects, validation rules, uniqueness constraints, or whether the operation is idempotent, leaving the agent to guess.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, terse sentence, which is concise but lacks structured information. It does not front-load critical details or follow a pattern that helps an agent quickly understand the tool's purpose and requirements.

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

Completeness1/5

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

For a tool with 12 parameters and 7 required fields, a one-line description is severely incomplete. The agent gets no information about parameter relationships, necessary credentials, or expected outcomes, making it difficult to use correctly without external knowledge.

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

Parameters1/5

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

None of the 12 parameters are described in the tool description, and the input schema provides no explanations. The description does not compensate for the 0% schema coverage, so an agent cannot determine the meaning or requirements of fields like inbound_password or is_outbound_equal.

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?

The description clearly states the action ('Add') and the resource ('email configuration'), which distinguishes it from sibling tools like update, delete, and send. However, it provides no detail on what constitutes an email configuration, so it's not fully informative.

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?

No guidance is given on when to use this tool versus alternatives. While the name implies creation, there is no explicit context about prerequisites, interactions with other email tools, or scenarios where this tool is appropriate.

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

delete_email_configC

Delete email configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.2/5.0
Behavior1/5

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

With no annotations and no elaboration, the description does not disclose any behavioral aspects, such as whether deletion is permanent, idempotent, or what happens if the config does not exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief, which is concise, but it omits critical details that would make it more useful. It is structurally simple but not effectively informative.

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

Completeness2/5

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

The description lacks context about error handling, return values, or side effects. Given the destructive nature of delete operations, more context is needed to use the tool safely.

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?

The only parameter 'name' is present but lacks any description in the schema. The description does not clarify what the name refers to (e.g., a unique identifier, display name) or any constraints.

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?

The description clearly states the action (delete) and the resource (email configuration), and the parameter name 'name' indicates the specific config to delete. It is distinct from sibling tools like add or update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does 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, such as whether to use it before or after update_email_config, or any prerequisites like checking existence.

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

generate_embeddingsC

Generate embeddings for all emails that don't have them yet

ParametersJSON Schema
NameRequiredDescriptionDefault
batch_sizeNoNumber of emails to process in each batch (default: 100)

TDQS

C2.9/5.0
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. It only implies idempotent behavior by saying 'don't have them yet', but doesn't disclose whether the operation is synchronous or asynchronous, whether it's safe to re-run, what happens to existing embeddings, or potential performance costs. For a state-changing batch operation, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with the core action front-loaded. It wastes no words, though it is arguably under-specified rather than optimally concise.

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

Completeness2/5

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

For a batch operation with no output schema and no annotations, the description lacks operational context: it doesn't mention error handling, progress reporting, whether it's a long-running job, or what the tool returns upon completion. An agent would have little idea what to expect when invoking it.

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 coverage is 100%, so the batch_size parameter is fully documented in the schema. The description adds no parameter-specific information beyond what the schema provides, so the baseline 3 applies. The description doesn't clarify the practical effect of adjusting batch_size.

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?

The description states a specific verb ('Generate') and resource ('embeddings for all emails that don't have them yet'), which clearly differentiates it from sibling tools like send_email or search_emails. The qualifier 'that don't have them yet' adds useful specificity about the target population, though it doesn't explicitly explain what embeddings enable (e.g., semantic search).

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?

No guidance is given on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., emails must exist first) or whether it should be run before semantic_search_emails to populate the index. There are no explicit when-to-use or when-not-to-use instructions.

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

get_all_emailsB

Get all emails from the database

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoEmail configuration name (optional)
limitNoMaximum number of results (default: 1000)

TDQS

B3.1/5.0
Behavior2/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 of behavioral disclosure. It only says 'get all emails' — it does not disclose the return format, whether results are paginated, whether authentication is required, or what 'all' means relative to filters. A 'get' operation is implicitly read-only, but nothing confirms that or elaborates on side effects.

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 wasted words. The core purpose is front-loaded and there is no redundant phrasing. For conciseness, this is exemplary.

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?

The tool is simple (two optional params, no nested objects, no output schema), so the minimal description is not catastrophic. But given a large sibling set and zero annotations, it is incomplete: an agent has no guidance on scope differences from search_emails/get_emails_by_date, no behavioral expectations, and no indication of output shape. It is adequate for basic invocation but leaves real gaps.

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 coverage is 100%, so the schema already documents both parameters (name and limit) with descriptions. The description itself adds no meaning beyond the schema — baseline 3 applies since the schema carries the parameter load and the description does not need to compensate.

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?

The description has a specific verb ('Get') and resource ('emails from the database'), so purpose is clear. However, with siblings like search_emails, get_emails_by_date, and read_email present, it does not differentiate itself at all — an agent cannot tell whether 'get_all_emails' overlaps with 'search_emails' or returns a different shape.

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?

No guidance is given on when to use this tool versus the many email-related siblings (search_emails, get_emails_by_date, read_email). Given the sibling set, an agent must guess which tool fits the intent, since the description neither states the conditions for use nor names alternatives.

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

get_email_countB

Get the total count of emails in the database

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoEmail configuration name (optional)

TDQS

B3.3/5.0
Behavior2/5

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

The description does not explain the effect of the optional 'name' parameter, whether it filters the count by email configuration, or what happens when the configuration does not exist. No annotations clarify behavior.

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?

The description is extremely concise and free of unnecessary words, making it easy to parse quickly.

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?

The tool is simple and the description covers its main function, but it omits details about the optional parameter's filtering behavior and the exact return format. These gaps are notable but not severe given the simple nature of a count 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?

The 'name' parameter has a description indicating it is an optional email configuration name, but it does not explain how omitting it affects the count or whether the name must reference an existing configuration. Schema coverage is present but minimal.

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?

The description clearly states the tool returns the total count of emails, making its primary purpose unambiguous and distinct from sibling tools that return email lists or perform other operations.

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?

No guidance is given about when to use this tool instead of alternatives like get_all_emails or search_emails. The intended use case is only implied by the tool name.

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

get_emails_by_dateC

Get emails within a date range

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesEmail configuration name
limitNoMaximum number of results (default: 100)
end_dateNoEnd date in ISO format (YYYY-MM-DD), defaults to today if not provided
start_dateYesStart date in ISO format (YYYY-MM-DD)

TDQS

C2.8/5.0
Behavior2/5

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

Without annotations, the description carries the full transparency burden. It implies a read-only operation ('Get emails') but does not explicitly state safety, side effects, or any constraints such as authentication or configuration requirements.

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?

The description is a single, concise sentence with no unnecessary words or repetition. It is well-structured and easy to parse.

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

Completeness2/5

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

Given the variety of sibling tools, the description is too minimal to be fully self-contained. It lacks information about output format, ordering, pagination, and the exact role of the 'name' parameter, which could lead to confusion when selecting among similar email retrieval tools.

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?

The schema covers all four parameters with descriptions (name, start_date, end_date, limit), including defaults for end_date and limit. This meets the baseline for schema coverage, though 'name' could be more detailed regarding what constitutes an email configuration.

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?

The description clearly states the action (get emails) and the scope (within a date range), which distinguishes it from tools like get_all_emails. However, it does not explicitly mention the 'name' parameter, which might cause slight ambiguity regarding configuration context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does 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 compared to alternatives like search_emails or get_all_emails. It lacks any mention of the preferred use case or conditions that would make this tool the right choice.

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

list_email_configsC

List all email configurations

ParametersJSON Schema
NameRequiredDescriptionDefault
commandNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears the burden of disclosing side effects. While listing is inherently non-destructive, the description does not explicitly state read-only behavior or any potential effects (e.g., caching, authentication requirements), so transparency is limited.

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?

The description is a single short sentence that conveys the core purpose without superfluous detail. It is appropriately sized for a simple listing operation.

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

Completeness2/5

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

The description lacks essential context: no explanation of the 'command' parameter, no mention of output format or pagination, and no note about permissions or side effects. While the tool itself is simple, the missing parameter semantics makes it incomplete for an agent to invoke correctly.

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

Parameters1/5

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

The single parameter 'command' is completely unexplained in both the description and schema. No meaning, expected values, or default behavior is provided, making it impossible to know what to pass.

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?

The description clearly states the tool's function: listing all email configurations. It is distinct from sibling tools like add, update, or delete email configs, and the verb 'list' is specific and unambiguous.

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?

The description provides no guidance on when to use this tool versus alternatives (e.g., when to use get_all_emails instead). It does not mention prerequisites or context, leaving the agent to infer usage from the name alone.

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

read_emailC

Read latest 5 unread emails

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only states the action. It does not clarify whether emails are marked as read, how 'latest' is determined, what happens if fewer than 5 unread emails exist, or any authentication requirements. The read-only nature is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words, which is efficient. However, it omits critical information such as the parameter meaning and behavioral nuances, so its brevity comes at the expense of utility.

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

Completeness1/5

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

For a tool with one required parameter, no output schema, and no annotations, the description is severely incomplete. It fails to explain the parameter, the return format, edge cases, or any side effects, leaving the agent unable to call it correctly.

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

Parameters1/5

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

The sole parameter 'name' is required but has no schema description (0% coverage) and is entirely absent from the tool description. The agent has no basis to infer what 'name' refers to—whether it is an account, folder, or other identifier—making correct invocation impossible.

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?

The description states a clear action ('Read') and a specific resource ('latest 5 unread emails'), which distinguishes it from search, send, and configuration tools. However, it does not explicitly differentiate it from get_all_emails or get_emails_by_date, which could also return emails, so it lacks a definitive exclusion.

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?

No guidance is provided on when to use this tool versus siblings like search_emails or get_all_emails. There is no mention of context, prerequisites, or alternatives, leaving the agent to guess the appropriate scenario.

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

search_emailsD

Search emails by content

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoEmail configuration name (optional)
limitNoMaximum number of results (default: 10)
queryYesSearch query text

TDQS

D1.7/5.0
Behavior1/5

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

No annotations and no description of side effects, read-only status, or potential errors. The tool could have side effects or be read-only, but nothing is disclosed, leaving the agent without critical behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence, which is economical but sacrifices necessary detail. It is not verbose, but the brevity results in a lack of substantive information, making it average in conciseness.

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

Completeness1/5

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

There is no output schema and no description of return format, pagination, or error behavior. The description is too sparse to prepare an agent for the tool's complete behavior, making it incomplete in context.

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?

The schema covers all three parameters (query, limit, name) with brief descriptions, achieving 100% coverage. The tool description adds no additional semantic value 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Search by content' states a verb and resource, but it does not clarify what kind of search (e.g., exact match, partial, subject/body) and is nearly indistinguishable from the sibling tool 'semantic_search_emails', which also searches by content. This ambiguity fails to give an agent a clear purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like 'semantic_search_emails' or 'get_all_emails'. The agent is left to guess which search method is appropriate, providing no usage context.

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

semantic_search_emailsA

Search emails using semantic similarity

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoEmail configuration name (optional)
limitNoMaximum number of results (default: 10)
queryYesSearch query text
similarity_thresholdNoMinimum similarity score (0-1) to include in results (default: 0.6)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided and the description only says 'search', giving no explicit statement about side effects, read-only behavior, or other behavioral nuances. The word search implies non-destructive operation, but the description alone does not disclose this clearly.

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?

The description is a single concise sentence with no unnecessary words or repetition, making it easy to parse.

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 simple search tool with a complete input schema, the description is minimally adequate, but it does not mention return format, default behavior, or how semantic search differs from the sibling search_emails, leaving some context missing.

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?

The JSON schema already describes all four parameters with reasonable clarity (query, optional name, limit, similarity_threshold). The description adds no extra parameter meaning, so it stays at the baseline.

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?

Clearly states the tool searches emails using semantic similarity, identifying the resource (emails), action (search), and method (semantic similarity), which distinguishes it from keyword-based search siblings.

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?

The description implies use for semantic/meaning-based search rather than keyword matching, but it does not explicitly state when to choose this tool over the sibling search_emails or other email retrieval tools.

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

send_emailC

Send an email

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYes
bccNo
bodyYes
nameYes
subjectYes

TDQS

C2.2/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose side effects, delivery semantics, or whether this operation is irreversible. The agent is left without any transparency about what sending an email entails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, but it is under-specified for a tool with six parameters. While there is no unnecessary verbosity, the extreme brevity leaves out essential information.

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

Completeness1/5

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

Given no output schema, no annotations, and no parameter descriptions, the tool definition is far from complete. An agent cannot determine expected inputs, return values, or side effects from this description alone.

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

Parameters1/5

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

The schema lists six parameters but provides no descriptions for any of them, and the description does not explain their meaning or format. With 0% schema description coverage, the tool definition entirely fails to clarify parameter semantics.

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?

The description 'Send an email' is a specific verb and resource, clearly distinguishing this tool from the sibling read, search, list, and config tools. However, it lacks any additional context about scope or behavior, so it is not maximally informative.

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 use this tool instead of alternatives such as read_email or search_emails. The description simply states the action without any usage context.

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

update_email_configC

Update email configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
inbound_sslYes
inbound_hostYes
inbound_portYes
inbound_userYes
outbound_sslNo
outbound_hostNo
outbound_portNo
outbound_userNo
inbound_passwordYes
is_outbound_equalYes
outbound_passwordNo

TDQS

C2/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose any side effects, validation rules, or consequences (e.g., whether updating the config breaks active sessions).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one short sentence), which is efficient, but it lacks structure or elaboration that would aid understanding. It is minimal but not misleading.

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

Completeness1/5

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

The description is incomplete; it does not mention what happens to outbound fields when is_outbound_equal is true, how to handle partial updates, or what the response indicates. No output schema exists, and the description provides no operational context.

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

Parameters1/5

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

None of the 12 parameters are described in the tool description or schema. The schema lists types and requiredness but provides no meaning, format, or usage examples, leaving the agent to guess.

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?

The description 'Update email configuration' provides a clear verb and resource, and the verb 'update' distinguishes it from add/delete/list siblings. However, it lacks specificity about which configuration aspects are affected, though the schema provides some context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does 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, no prerequisites or conditions mentioned, and no indication of required context (e.g., existing config ID).

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.1.0
    • First observedadd_email_config
    • First observeddelete_email_config
    • First observedgenerate_embeddings
    • First observedget_all_emails
    • First observedget_email_count
    • First observedget_emails_by_date
    • First observedlist_email_configs
    • First observedread_email
    • First observedsearch_emails
    • First observedsemantic_search_emails
    • First observedsend_email
    • First observedupdate_email_config

TDQS

C2.9/5.0

Scored across 12 tools

Disambiguation5/5

Each tool has a clear, unique purpose covering configuration CRUD, sending, reading, searching, and embedding generation, with no functional overlap.

Naming Consistency4/5

Most tools follow a verb_noun pattern (list_email_configs, send_email, search_emails), though semantic_search_emails and generate_embeddings are slightly less uniform.

Tool Count5/5

Twelve tools is well-scoped for an email client MCP, providing a focused set without unnecessary bloat.

Completeness4/5

Core email operations and config management are covered, but missing features like deleting emails or marking them as read represent minor gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Python-based MCP server that bridges MCP-compatible clients with the Gmail API, enabling AI-driven email management through natural language commands.
    38 PyPI
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A minimal MCP server for reading and sending emails via IMAP/SMTP, supporting multiple accounts in a single instance with zero external dependencies.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A minimal MCP server for reading, searching, managing, and sending email over IMAP and SMTP.
    MIT