Skip to main content
Glama
ggiraudon

Email MCP Server

by ggiraudon
README.md
# Email MCP Server

This project is a modular, type-safe Email Management Context Protocol (MCP) server built with Node.js and TypeScript. It provides a set of tools and controllers for interacting with email servers using the IMAP protocol, supporting operations such as listing folders, retrieving messages, searching, moving, deleting, and managing message flags.

## Features

- **IMAP Email Operations**: Connect to IMAP servers to list folders, fetch messages, search, move, delete, and manage flags.
- **Type Safety**: All models and data structures are defined using [Zod](https://github.com/colinhacks/zod) schemas for runtime validation and TypeScript type inference.
- **MCP Tools**: Implements the [fastmcp](https://www.npmjs.com/package/fastmcp) Tool interface for modular, composable email operations.
- **Configurable**: Email server configuration is loaded from a config file or environment variables.
- **Extensible**: Easily add support for POP, SMTP, or JMAP protocols by extending the models and controllers.

## Project Structure

- `src/models/` — Zod schemas and types for email data structures (MailItem, MailFolder, EmailAddress, etc.)
- `src/controllers/` — Controllers for IMAP and other protocols
- `src/tools/` — Individual MCP tools for each email operation
- `src/index.ts` — Entry point, config loading, and tool registration

## Getting Started

1. Install dependencies:
   ```sh
   npm install
   ```
2. Configure your email server settings in `config.json` or `.env`.
3. Run the server or use the tools as needed.

### Todo

- [x] IMAP functions
- [ ] POP functions
- [ ] SMTP functions
- [ ] JMAP functions

## License

MIT

TDQS

C2.8/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific email operations like folder management, message retrieval, and flag handling. However, ClearMessageFlagsTool and setFlags could potentially cause confusion as they both deal with message flags, though their descriptions clarify one clears and the other sets flags.

Naming Consistency3/5

The naming is mixed with some tools using camelCase (ClearMessageFlagsTool) and others using snake_case (createFolder, getMessageList). While the verb_noun pattern is generally followed, the inconsistency in casing and the outlier 'search' (a single word) detract from a fully predictable pattern.

Tool Count5/5

With 10 tools, this server is well-scoped for an email management domain. It covers core operations like folder CRUD, message retrieval, deletion, moving, and searching, which is appropriate for handling email workflows without being overwhelming.

Completeness4/5

The toolset provides solid coverage for email management, including folder operations, message lifecycle (get, delete, move), and search capabilities. A minor gap is the lack of a tool for sending or composing emails, which might be expected in a full email server, but the existing tools support common agent tasks well.

Maintenance

ActivityInactive
ResponsivenessNo issues