InboxAPI MCP 服务器代理(CLI/Rust 版)
使用说明
- 项目简介
- 该仓库实现了一个基于 MCP 的本地代理服务器/网关,能够与 MCP 客户端进行 JSON-RPC 交互,将请求转发给 InboxAPI 的云端 MCP 服务。它不仅充当传输通道,还内置凭证管理、自动账户创建、令牌刷新、工具列表改写、身份信息注入以及对代理返回内容的本地增强(如帮助信息、更新通知、空邮箱提示等)。
- 主要功能点
- MCP 请求/响应处理:接收来自 MCP 客户端的请求(如获取邮箱、调用工具、获取提示模板等),通过 HTTP(JSON)向 InboxAPI 的 MCP 服务端点转发,并将响应通过 STDIO 返回给客户端。
- 凭证与认证:自动创建账户、保存与读取访问令牌和刷新令牌,支持令牌刷新与回退。
- 本地工具与描述改写:在服务器端拦截并改写工具列表,对特定工具进行描述注释和本地化提示,注入身份信息以便客户端更清晰地知道“是谁在操作”。
- 身份注入与描述增强:对 send_email、send_reply、forward_email 等工具注入账户身份信息(名称、邮箱、显示名),并在 tool 描述中提供守则与签名指引。
- 安全与合规性增强:对请求中敏感字段(如 token、domain 等)进行处理与清理,确保不会无意间泄露或错用令牌。
- 版本与通知:对服务器端软件版本进行自动更新提示,必要时将更新通知注入响应内容中。
- 事件流与 SSE 支持:对 MCP 的事件流进行解析,能够处理 JSON 文档和 SSE 数据,向客户端返回可用于交互的增量内容。
- 安装步骤
- 该实现为一个可构建的本地服务器,核心在 Rust/Cargo 构建。推荐步骤为:
- 安装 Rust 与 Cargo(如未安装,请先完成 rustup 安装)。
- 在仓库根目录执行构建:cargo build --release
- 运行服务器代理(示例):./target/release/inboxapi proxy
- 备注:仓库还包含多语言实现入口与集成脚本,实际部署时可选择以发行包形式安装或从源码编译运行。
- 该实现为一个可构建的本地服务器,核心在 Rust/Cargo 构建。推荐步骤为:
- 服务器配置(MCP 客户端使用的配置,JSON 形式,描述服务器信息、启动命令与参数)
- 配置示例(文本描述,非代码块,仅供理解,具体项请按实际部署填写):
- server name: inboxapi
- command: inboxapi
- args: ["proxy"]
- endpoint: 指向 InboxAPI 的 MCP 服务端点(示例可能是 https://mcp.inboxapi.ai/mcp,实际请使用部署时的端点) 说明:MCP 客户端需要知道服务器的名称、启动命令及参数,以便于建立 STDIO 连接。以上信息用于客户端在本地发起 MCP 会话时的定位与调用。credentials、token 注入等由服务器端在会话中自动管理,客户端通常不需要关心。
- 配置示例(文本描述,非代码块,仅供理解,具体项请按实际部署填写):
- 基本使用方法
- 启动与连接:在 MCP 客户端(如 Claude/ Gemini/ OpenCode 等)配置中,指向本地 inboxapi 启动命令,使用命令行方式启动服务器代理(如 inboxapi proxy,CLI 会隐式处理环境与端点)。
- 使用流程:客户端通过 MCP 协议发送请求,服务器代理将请求转发到 InboxAPI 的远端 MCP 服务,服务器再将响应返回给客户端;同时服务器会在需要时返回本地增强的帮助、身份信息、更新通知等内容。
- 常用操作:如需要查看当前认证账户,可以通过 whoami 请求获取当前账户信息;需要获取帮助信息,可请求 help;如要发送邮件、查询邮箱、或使用其他工具,直接通过标准 MCP 工具调用流程即可,代理会处理令牌注入与错误重试。