项目简介
这是一个电子邮件 MCP 服务器,它将标准的电子邮件协议(SMTP 用于发送,IMAP 用于接收和搜索)包装成 Model Context Protocol (MCP) 工具。这使得支持 MCP 协议的大型语言模型 (LLM) 客户端能够与您的电子邮件账户进行交互,实现发送邮件、搜索邮箱等自动化操作。
主要功能点
- 发送邮件: 允许 MCP 客户端(如 LLM)通过安全的连接(基于您提供的凭据)发送电子邮件。可以指定收件人、抄送 (CC)、邮件主题和邮件正文(支持 HTML 格式)。
- 搜索邮箱: 允许 MCP 客户端连接到您的 IMAP 邮箱服务器,搜索指定文件夹(默认为收件箱)中的邮件。支持丰富的 IMAP 搜索条件,例如按发件人、收件人、主题、邮件内容、日期、邮件状态(已读、未读、已标记等)进行过滤,并可限制返回的邮件数量。
安装步骤
- 安装 Python: 确保您的系统已安装 Python 3.7 或更高版本。
- 安装服务器程序包: 打开您的终端或命令提示符,运行以下命令安装此 MCP 服务器:
pip install email-mcp
服务器配置 (供 MCP 客户端参考)
此 MCP 服务器需要您的电子邮件账户的 SMTP 和 IMAP 服务器地址、用户名和密码才能运行。这些信息需要作为启动参数传递给服务器程序。
许多 MCP 客户端(如 Claude Desktop)通过配置文件来管理其可用的 MCP 服务器。您通常需要在客户端的配置文件中添加一个条目,指定如何启动此服务器。配置信息通常包含服务器的名称、启动命令 ('command') 及其参数 ('args')。
以下是一个典型的配置结构示例,您需要根据您的 MCP 客户端的要求进行调整,并将占位符替换为您的实际邮箱信息:
- 服务器名称: 您可以为这个服务器指定一个易于识别的名称,例如 'email'。
- 启动命令 (command): 'python' (表示使用 Python 解释器)
- 启动参数 (args): 这是一个列表,包含 Python 解释器需要执行的模块和该模块接收的参数。
- '-m'
- 'email_mcp' (指定运行 'email_mcp' 模块)
- '--smtp-server' 后跟您的 SMTP 服务器地址 (例如: 'smtp.gmail.com', 'smtp.office365.com')
- '--smtp-username' 后跟您的 SMTP 用户名 (通常是您的完整邮箱地址)
- '--smtp-password' 后跟您的 SMTP 密码或应用专用密码(重要:对于 Gmail 等需要双重验证的服务,您通常需要生成并使用一个“应用专用密码”,而不是您的普通账户密码)
- '--imap-server' 后跟您的 IMAP 服务器地址 (例如: 'imap.gmail.com', 'outlook.office365.com')
- '--imap-username' 后跟您的 IMAP 用户名 (通常是您的完整邮箱地址)
- '--imap-password' 后跟您的 IMAP 密码或应用专用密码
示例配置结构描述 (非代码,请根据客户端格式填写):
指定一个 MCP 服务器名为 "email"。 启动命令为 "python"。 启动参数包括:"-m", "email_mcp", "--smtp-server", "您的SMTP服务器", "--smtp-username", "您的邮箱", "--smtp-password", "您的SMTP密码", "--imap-server", "您的IMAP服务器", "--imap-username", "您的邮箱", "--imap-password", "您的IMAP密码"。
请参考您使用的 MCP 客户端的文档,了解如何在其配置中正确添加这些信息。
基本使用方法
一旦您的 MCP 客户端配置并成功启动了电子邮件 MCP 服务器,LLM 或其他客户端就可以通过调用服务器提供的工具来执行邮件相关的任务。
例如,您可以在客户端中向 LLM 发出请求,让它利用这些工具:
- 要求 LLM 发送一封邮件到 '[email protected]',主题是 "项目进度更新",内容为特定的 HTML 格式的报告。LLM 将识别并调用 'send_email' 工具,提供相应的参数。
- 要求 LLM 搜索您收件箱中最近一周内来自 '[email protected]' 的所有已标记邮件。LLM 将识别并调用 'search_mailbox' 工具,使用合适的搜索条件列表(如 '["SINCE", "日期", "FROM", "[email protected]", "FLAGGED"]')和文件夹参数。
LLM 如何解析您的自然语言请求并将其转化为具体的工具调用取决于 LLM 本身的能力。
信息
分类
通信与社交