使用说明
项目简介
MCP邮件服务器是一个基于Model Context Protocol (MCP) 构建的应用后端,旨在为大型语言模型(LLMs)提供邮件发送和附件搜索能力。通过该服务器,LLM可以安全、可控地执行发送邮件、查找本地附件等操作,从而扩展其在自动化工作流、信息处理等方面的应用。
主要功能点
- 发送邮件: 支持LLM通过调用 'send_email' 工具发送邮件,可指定收件人、邮件主题、邮件正文和附件。
- 附件搜索: 支持LLM通过调用 'search_attachments' 工具在指定目录中搜索匹配特定模式的文件,用于查找邮件附件。
- 安全邮件传输: 支持基于SMTP协议的安全邮件发送。
- 可配置SMTP服务: 通过 'email.json' 文件配置不同邮箱域名的SMTP服务器信息。
- 支持多种附件类型: 支持常见文档、压缩包、文本、图片等多种附件类型。
安装步骤
-
安装依赖: 确保已安装 Python 和 pip,然后运行以下命令安装所需的 Python 包:
pip install pydantic python-dotenv -
配置邮箱信息:
- 在 'src/mcp_server_email' 目录下找到 'email.json' 文件。
- 根据需要编辑 'email.json' 文件,配置你的邮箱域名对应的 SMTP 服务器地址和端口。例如,Gmail、Outlook、Yahoo邮箱的配置已在示例文件中。
-
设置环境变量:
- 创建 '.env' 文件在项目根目录下(或在你的系统环境变量中设置)。
- 在 '.env' 文件中设置发件人邮箱地址 ('SENDER') 和邮箱密码 ('PASSWORD')。
注意: 如果是 Gmail 或其他邮箱服务,可能需要使用应用专用密码以提高安全性。SENDER=你的邮箱地址@example.com PASSWORD=你的邮箱密码或应用专用密码
服务器配置
要将 MCP 邮件服务器配置到 MCP 客户端(例如 Claude.app),你需要提供服务器的启动命令和参数。以下是配置示例,请根据你的实际环境调整路径:
配置示例 (JSON 格式)
{ "mcpServers": { "email": { "command": "python", "args": [ "-m", "mcp_server_email", "--dir", "/path/to/attachment/directory" // 附件存放的根目录,请替换为实际路径 ], "env": { "SENDER": "你的邮箱地址@example.com", // 你的发件人邮箱地址,请替换为实际地址 "PASSWORD": "你的邮箱密码或应用专用密码" // 你的邮箱密码或应用专用密码,请替换为实际密码 } } } }
参数说明:
- 'command': 启动服务器的命令,通常为 'python'。
- 'args': 传递给 'python' 命令的参数列表:
- '"-m", "mcp_server_email"': 以模块方式运行 'mcp_server_email' 包,启动服务器。
- '"--dir", "/path/to/attachment/directory"': 指定附件存放的根目录。 请将 '/path/to/attachment/directory' 替换为你希望LLM搜索附件的实际本地目录路径。 例如,可以设置为用户桌面、文档目录等。
- 'env': 设置服务器运行时的环境变量:
- '"SENDER"': 发件人邮箱地址。 请将 '"你的邮箱地址@example.com"' 替换为你的实际邮箱地址。
- '"PASSWORD"': 发件人邮箱的密码或应用专用密码。 请将 '"你的邮箱密码或应用专用密码"' 替换为你的实际密码。
注意:
- 请务必将 '/path/to/attachment/directory'、'你的邮箱地址@example.com' 和 '你的邮箱密码或应用专用密码' 替换为你的实际配置。
- 建议使用应用专用密码,特别是对于 Gmail 等邮箱,以提高安全性。
- 确保配置的目录是LLM需要搜索附件的目录的父目录或包含附件的目录。
基本使用方法
-
启动服务器: 在终端中,切换到仓库的根目录,运行以下命令启动 MCP 邮件服务器,并指定附件目录:
python -m mcp_server_email --dir /path/to/attachment/directory将 '/path/to/attachment/directory' 替换为你实际的附件目录路径。
-
在 MCP 客户端中使用: 在支持 MCP 协议的 LLM 客户端(如 Claude.app)中,配置上述提供的服务器配置信息。
-
调用工具: 在 LLM 中,你可以指示它使用以下工具来发送邮件或搜索附件:
- 发送邮件 (send_email): 告诉 LLM 使用 'send_email' 工具,并提供收件人、主题、正文和附件文件名等参数。 例如,你可以对 LLM 说: "请发送邮件给 [email protected],主题是 '测试邮件',内容是 '这是一封来自MCP邮件服务器的测试邮件。',附件是 'document.pdf' 和 'image.jpg' "。
- 搜索附件 (search_attachments): 告诉 LLM 使用 'search_attachments' 工具,并提供要搜索的文件名模式。 例如,你可以对 LLM 说: "请帮我搜索文件名包含 'report' 的附件"。
-
查看结果: LLM 会调用相应的 MCP 工具,服务器执行操作后,会将结果返回给 LLM 客户端。你可以查看 LLM 的回复,了解邮件是否发送成功或附件搜索结果。
示例 JSON 请求
发送邮件:
{ "receiver": ["[email protected]"], "subject": "Test Email from MCP Server", "body": "This is a test email sent via the MCP Email Server.", "attachments": ["document.pdf", "image.jpg"] }
搜索附件:
{ "pattern": "report" }
信息
分类
通信与社交