项目简介

EpicMe MCP 是一个演示性的个人日记应用后端,专为通过大型语言模型(LLM)进行自然语言交互而设计。它利用 Model Context Protocol (MCP) 标准,将日记管理、用户认证、AI驱动的标签建议和内容总结等功能暴露给兼容的LLM客户端。尽管被标记为实验性项目,它完整实现了MCP服务器的核心功能,展示了未来应用开发的潜力。

主要功能点

  • 用户认证: 通过电子邮件和一次性密码(TOTP)进行安全的用户注册和登录流程。
  • 日记条目管理: 创建、获取、列出、更新和删除具有标题、内容、心情、位置、天气及隐私设置的日记条目。
  • 标签组织: 创建、管理和应用标签,以更好地分类和筛选日记。
  • AI辅助功能:
    • 为日记条目提供AI驱动的标签建议。
    • 根据标签或日期范围对日记内容进行AI总结。
  • 资源访问: 提供对用户个人信息、日记条目和标签数据的标准化资源访问接口。
  • 会话管理: 服务器负责维护用户会话状态,确保安全和个性化的交互。

安装步骤

该项目是一个部署在Cloudflare全球网络上的Cloudflare Workers应用程序。您无需在本地进行传统意义上的安装。如果您想部署自己的EpicMe MCP服务器实例,可以参考以下步骤:

  1. 克隆仓库: 打开您的终端或命令行工具,运行以下命令克隆项目仓库:
    git clone https://github.com/epicweb-dev/epic-me-mcp.git
  2. 安装依赖: 进入项目目录,并使用pnpm或npm安装项目依赖:
    cd epic-me-mcp
    pnpm install
    # 或 npm install
  3. 配置环境变量: EpicMe MCP服务器需要绑定多个Cloudflare服务。您需要在Cloudflare控制台中创建并配置以下绑定:
    • 'EPIC_ME_DB': 一个Cloudflare D1数据库实例,用于存储日记条目、标签和用户信息。
    • 'OAUTH_KV': 一个Cloudflare KV Namespace,用于存储OAuth认证相关的临时数据。
    • 'EPIC_ME_MCP_OBJECT': 一个Cloudflare Durable Object Namespace,用于MCP服务器的持久化状态和会话管理。
    • 'RESEND_API_KEY': 一个Resend API密钥,用于发送用户认证所需的验证邮件(可选。如果未配置或设置为'MOCKS=true',邮件发送将进入模拟模式)。 在您的Cloudflare Worker配置(例如'wrangler.toml'文件)中设置这些绑定。
  4. 部署到Cloudflare: 使用Cloudflare Wrangler CLI工具将您的Worker部署到Cloudflare:
    wrangler deploy
    部署成功后,您将获得一个可公开访问的服务器URL,例如'https://your-worker-name.your-account.workers.dev/mcp'。

MCP服务器配置 (供MCP客户端使用)

MCP客户端需要配置服务器地址和其声明的能力,以便与EpicMe MCP服务器建立连接并进行交互。

EpicMe MCP 服务器的部署URL示例: 'https://epic-me-mcp.kentcdodds.workers.dev/mcp'

MCP客户端配置示例 (JSON格式):

{
  "name": "EpicMe MCP Server",
  "command": "curl",
  "args": [
    "https://epic-me-mcp.kentcdodds.workers.dev/mcp",
    "-X", "POST",
    "-H", "Content-Type: application/json",
    "--data", "@-"
  ],
  "comment": "这是一个通过HTTP POST请求与远程MCP服务器通信的配置示例。'curl'是用于发送HTTP请求的命令,后续是其参数。'@-'表示'curl'将从标准输入读取请求体,并将其作为POST请求的数据发送给服务器。",
  "capabilities": {
    "tools": {
      "listChanged": true
    },
    "resources": {
      "subscribe": true,
      "listChanged": true
    },
    "completions": {},
    "prompts": {
      "listChanged": true
    },
    "logging": {}
  }
}
  • 'name': 这是MCP客户端中显示的服务器名称,您可以自定义。
  • 'command': 客户端用于启动MCP服务器进程的命令。由于EpicMe MCP服务器是远程HTTP服务,这里使用'curl'命令来模拟通过标准I/O与服务器通信。
  • 'args': 'curl'命令的参数。这些参数指示'curl'向指定的服务器URL发送HTTP POST请求,设置'Content-Type'头为'application/json',并通过'--data @-'从标准输入读取JSON-RPC请求体。
  • 'comment': 对该配置项的简要说明。
  • 'capabilities': 服务器声明其支持的MCP协议能力,包括对工具、资源、补全、提示和日志的列表更新、订阅等功能。这些信息帮助MCP客户端了解服务器的功能,并优化交互方式。

基本使用方法

一旦您的MCP客户端连接并配置了EpicMe MCP服务器,您可以开始通过自然语言与之交互:

  1. 连接客户端: 在您的MCP客户端(例如 Claude Desktop 或其他兼容客户端)中,选择并连接到您配置的EpicMe MCP服务器。
  2. 认证登录:
    • 步骤一:发起认证 在客户端输入自然语言命令,例如:“认证我,请问我的电子邮件地址是什么?” 服务器会回复并提示您提供电子邮件。输入您的电子邮件地址。
    • 步骤二:验证令牌 检查您的电子邮件收件箱,您将收到一个包含6位数字验证码的邮件。 在客户端中输入命令,例如:“使用验证码 '123456' 完成认证。”
    • 认证成功后,您将收到确认信息,表示已登录并可以访问所有受认证保护的功能。
  3. 开始日记与管理: 现在,您可以使用自然语言命令来管理您的日记:
    • 创建日记条目: “创建一个关于我今天在海滩散步的日记条目,心情很愉快,天气晴朗。”
    • 列出日记条目: “显示我所有的日记条目。” 或 “列出带有‘工作’标签的日记。”
    • 查看特定日记: “给我看ID为 '123' 的日记。”
    • AI标签建议: “为我的最新日记条目建议一些标签。”
    • 日记总结: “总结我上周的日记内容。” 或 “总结所有关于‘旅行’标签的日记。”
    • 更新日记: “将我的ID为 '456' 的日记标记为收藏。”
    • 创建标签: “创建一个名为‘个人目标’的新标签。”
    • 删除日记或标签: “删除ID为 '789' 的日记。” (系统可能会要求您确认)
    • 查看日记内容: “打开日记查看器。” (适用于支持MCP-UI的客户端)

信息

分类

生产力应用