项目简介

'ybigta-agent' 仓库包含多个Agent的实现。其中位于 'app/agents/mail_agent/mcp-email-client' 目录下的部分是一个基于 Model Context Protocol (MCP) 的邮件代理服务器实现。它允许大型语言模型 (LLM) 客户端通过标准的 JSON-RPC 接口调用工具来执行邮件相关的操作,如发送邮件、搜索历史邮件等。

主要功能点

此MCP服务器提供以下主要功能,作为LLM可调用的工具暴露:

  • 邮件配置管理: 添加、更新、删除和列出用于连接邮件服务器的账号配置。
  • 发送邮件: 通过配置好的账号发送电子邮件。
  • 读取邮件: 加载收件箱中的最新邮件或指定日期范围内的邮件,并将它们存储在本地数据库中。
  • 邮件搜索: 在本地数据库中对已加载的邮件进行全文检索。
  • 邮件语义搜索: 利用向量嵌入对邮件内容进行语义相似度搜索。
  • 邮件计数: 获取本地数据库中存储的邮件总数。
  • 生成嵌入: 为尚未生成嵌入的邮件生成向量嵌入,以便进行语义搜索。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/wognsths/ybigta-agent.git
    cd ybigta-agent
  2. 设置Python环境: 推荐使用虚拟环境。
    python -m venv venv
    source venv/bin/activate # Windows: 'venv\Scripts\activate'
  3. 安装依赖: 导航到邮件代理目录并安装所需的库。
    cd app/agents/mail_agent/mcp-email-client
    # 可能需要手动安装依赖,例如 mcp 库、sentence-transformers、duckdb 等
    # 仓库中未提供 requirements.txt,请根据代码中的导入自行安装
    # 例如: pip install mcp sentence-transformers duckdb-python imaplib smtplib
    pip install mcp sentence-transformers duckdb-python
  4. 准备邮件配置: 服务器需要邮件账号信息。这些信息通过MCP工具 ('add_email_config', 'update_email_config') 进行管理,并存储在服务器端。首次运行前无需手动创建配置文件,通过LLM客户端调用相应的MCP工具即可创建。

服务器配置

MCP客户端连接此服务器时,需要以下配置信息:

{
  "name": "EmailClient",
  "command": "python",
  "args": [
    "app/agents/mail_agent/mcp-email-client/run_mcp_server.py"
  ],
  "workingDirectory": "<仓库的根目录路径>",
  "mimeType": "application/json-rpc",
  "transports": [
    {
      "protocol": "stdio"
    }
  ]
}

参数注释:

  • 'name': MCP服务器的唯一标识符,在此实现中固定为 "EmailClient"。
  • 'command': 用于启动MCP服务器进程的可执行命令,通常是 'python'。
  • 'args': 传递给 'command' 的命令行参数列表。这里指定了启动服务器的脚本路径。
  • 'workingDirectory': 重要! MCP客户端需要指定执行 'command' 时的当前工作目录,应设置为您克隆的 'ybigta-agent' 仓库的根目录路径,以便正确找到启动脚本。
  • 'mimeType': 通信协议的MIME类型。
  • 'transports': 支持的传输协议列表。此实现通过标准输入/输出来通信 ('stdio')。

邮件账号配置: 请注意,上述配置仅用于启动MCP服务器进程。实际的邮件账号(如邮箱地址、密码、服务器地址等)需要通过调用MCP服务器暴露的 'add_email_config' 或 'update_email_config' 等工具来添加和管理。这些敏感信息存储在服务器端(通常位于服务器代码目录下的 'config' 子目录)。

基本使用方法

  1. 启动服务器: 手动或通过配置好的MCP客户端启动 'run_mcp_server.py' 脚本。
    # 在仓库根目录执行
    python app/agents/mail_agent/mcp-email-client/run_mcp_server.py
    服务器将通过标准输入/输出与MCP客户端通信。
  2. MCP客户端连接: 使用支持MCP协议的LLM客户端,配置上述服务器信息并建立连接。
  3. 调用工具: 通过客户端向服务器发送JSON-RPC请求,调用暴露的工具。例如,发送邮件请求可能类似于调用 'send_email' 工具,参数中包含收件人、主题、内容和使用的邮件配置名称。搜索邮件可能调用 'search_emails' 工具,参数包含查询关键词和配置名称。

LLM客户端将根据服务器声明的工具能力,引导用户执行邮件操作。

信息

分类

通信与社交