项目简介
本项目是一个实现了 Model Context Protocol (MCP) 的服务器应用,专注于提供邮件通知功能。通过实现一个MCP工具,它允许兼容MCP协议的客户端(如大型语言模型前端或应用)通过标准化的方式调用邮件发送服务。
主要功能点
- MCP工具: 提供一个名为 'notify' 的工具,允许客户端请求发送邮件。
- 邮件发送: 集成 'nodemailer' 实现通过SMTP服务发送邮件。
- 多协议支持: 支持通过 Streamable HTTP ('/mcp' 接口) 和 Server-Sent Events (SSE, '/sse' 接口) 与客户端进行通信。
- Docker部署: 提供Dockerfile方便打包和部署。
安装步骤
- 克隆仓库:
git clone https://github.com/fantasy-lotus/mcp_email_docker.git cd mcp_email_docker - 安装依赖:
npm install - 配置环境变量:
在项目根目录创建 '.env' 文件,填入SMTP服务信息:
请根据你的邮箱服务提供商填写准确的SMTP信息。SMTP_USER=你的邮箱账号 SMTP_PASS=你的邮箱SMTP授权码 SMTP_SERVICE=例如QQ (如果nodemailer支持) SMTP_HOST=例如smtp.qq.com PORT=8080 - 构建并启动服务器:
服务器将在配置的端口(默认为8080)启动。npm run build npm start
服务器配置 (用于MCP客户端)
为了让MCP客户端能够连接并使用此服务器,你需要在客户端的MCP服务器配置中指定该服务器的信息。对于基于HTTP协议的MCP服务器,客户端通常需要配置服务器的名称和访问URL。
- 服务器名称 (name): 'NotifyServer'
- 连接URL (url): 'http://<服务器地址>:<端口>/mcp' (推荐使用Streamable HTTP接口) 或 'http://<服务器地址>:<端口>/sse' (用于SSE连接)
例如,如果服务器运行在本地的8080端口,用于客户端配置的URL将是 'http://localhost:8080/mcp'。你需要将此信息添加到你的MCP客户端的服务器配置列表中。
基本使用方法
一旦MCP客户端连接上此服务器,它就可以通过调用 'notify' 工具来发送邮件。工具调用的参数如下:
- 'method':通知方法,目前只支持 '"email"'。
- 'to':收件人的邮箱地址。
- 'content':邮件的正文内容。
MCP客户端会以标准JSON-RPC请求格式向服务器发送工具调用请求,服务器执行发送邮件操作后,会返回相应的JSON-RPC响应。
信息
分类
通信与社交