项目简介

MIST 是一个基于 Model Context Protocol (MCP) 构建的应用后端服务器,旨在弥合 AI 助手与现实世界应用之间的差距。它通过标准化的协议,让 AI 助手能够安全、可靠地访问和操作用户的笔记、Google 服务(Gmail, Calendar, Tasks)和 Git 仓库。

主要功能点

  • 笔记管理: 支持创建、编辑、搜索、组织和读取本地存储的笔记。
  • Gmail 整合: 允许 AI 助手搜索、读取、发送邮件,以及管理标签。
  • 日历整合: 使 AI 助手能够查看、创建、更新和删除 Google Calendar 日程。
  • 任务管理: 支持创建任务列表,添加、标记完成和删除 Google Tasks。
  • Git 集成: 能够执行 Git 操作,如查看状态、差异、提交、分支管理、远程操作等。

安装步骤

  1. 满足前提条件: 确保已安装 Python 3.13 或更高版本,推荐使用 UV 包管理器(或 pip),需要 Google 账号用于 Google 服务集成,以及 Git 用于 Git 功能。
  2. 克隆仓库: 使用 Git 命令下载项目代码。
  3. 安装依赖: 进入项目目录,使用 UV 或 pip 安装 'pyproject.toml' 中列出的依赖项。
  4. 配置环境: 创建一个名为 '.env' 的文件,并在其中设置必要的环境变量,例如笔记存储目录、Google API 凭据和 token 文件的路径。
  5. 配置 Google API: 对于 Gmail、Calendar 和 Tasks 功能,需要前往 Google Cloud Console 创建项目、启用相应的 API、配置 OAuth 同意屏幕,并创建 OAuth 客户端 ID(选择“桌面应用”),然后下载 'credentials.json' 文件到项目配置的路径。首次运行服务器时,将通过浏览器完成 OAuth 认证流程,生成 'token.json' 文件。

服务器配置 (供 MCP 客户端参考)

MIST 作为 MCP 服务器运行,MCP 客户端(如兼容的 AI 助手或编辑器)需要知道如何启动和连接到它。以下是配置客户端连接 MIST 服务器时所需的关键信息组成部分(通常以 JSON 格式提供给客户端):

  • 服务器名称: 用于在客户端界面标识此 MCP 服务器的名称,例如 '"M.I.S.T."'。
  • 启动命令 (command): 运行服务器的可执行文件路径,例如 '"uv"'。
  • 命令参数 (args): 传递给启动命令的参数列表,例如 '["run", "--with", "mcp[cli]", "--with-editable", "/你的/mist/项目/路径", "mcp", "run", "/你的/mist/项目/路径/mist/server.py"]'。请务必将 '/你的/mist/项目/路径' 替换为 MIST 项目实际在你的文件系统中的完整路径。
  • 环境变量 (env): 服务器运行时需要的环境变量配置,这些变量通常对应你在 '.env' 文件中设置的项,例如:
    • 'MIST_GOOGLE_CREDENTIALS_PATH': 指向你的 'credentials.json' 文件路径。
    • 'MIST_GOOGLE_TOKEN_PATH': 指向你的 'token.json' 文件路径(首次运行时会自动生成)。
    • 'MIST_NOTES_DIR': 指向你存放笔记的文件夹路径。 请确保这些路径设置正确。

客户端会使用这些信息来启动 MIST 进程,并通过标准输入/输出来进行 MCP JSON-RPC 通信。

基本使用方法

  1. 启动服务器: 根据安装步骤的说明,使用 UV 或 Python 运行 'mist/server.py' 文件来启动 MIST 服务器。
  2. 连接 AI 助手: 在你的兼容 MCP 的 AI 助手或应用中,按照其指引配置一个新的 MCP 服务器连接,填入上面提供的服务器配置信息(服务器名称、启动命令、参数、环境变量等)。
  3. 通过 AI 助手交互: 连接成功后,AI 助手将能够发现 MIST 提供的功能(工具和资源)。你可以通过自然语言向 AI 助手发出指令,例如“帮我创建一个新的笔记,标题是会议记录,内容是...”、“搜索我的收件箱里来自特定发件人的邮件”、“列出我的日历日程”、“查看我的 Git 仓库状态”等。AI 助手会通过 MCP 协议调用 MIST 提供的相应工具和资源来完成你的请求。

安全注意事项

  • Google API 凭据和 Token 应妥善保管在你的本地文件系统中。
  • MIST 在你的本地环境运行,数据通常不会发送到第三方服务(除非通过配置显式使用 Google 等外部服务)。

信息

分类

生产力应用