备忘录同步服务

通过浏览器自动化实现flomo备忘录数据同步到Obsidian知识库的服务

  • by ZaneZ2
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Bored-AnnoYing/flomo-mcp

使用说明

Flomo MCP Server

通过 Playwright 浏览器自动化实现 flomo 备忘录同步到 Obsidian 知识库的 MCP 服务器。

功能特性

  • flomo_login - 打开浏览器登录 flomo,支持微信扫码登录
  • flomo_export - 自动导出 flomo 数据到本地
  • flomo_sync - 解析导出数据并同步到 Obsidian 知识库

安装

cd E:\AI\mcp\flomo-mcp
npm install
npm run build
npx playwright install chromium

配置

1. 配置环境变量

复制 .env.example 为 .env 并修改:

OBSIDIAN_VAULT_PATH=F:\AllBlue
FLOMO_TARGET_DIR=00收件箱\flomo

2. 配置到 Claude Desktop

编辑 Claude Desktop 配置文件:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

添加以下配置:

{
  "mcpServers": {
    "flomo-mcp": {
      "command": "node",
      "args": ["E:\\AI\\mcp\\flomo-mcp\\dist\\index.js"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "F:\\AllBlue",
        "FLOMO_TARGET_DIR": "00收件箱\\flomo"
      }
    }
  }
}

工具说明

flomo_login

打开浏览器进行 flomo 登录。支持微信扫码登录,登录成功后会话将被保存。

参数: 无
返回: 登录状态信息

flomo_export

导出 flomo 数据到本地文件。

参数:
  - outputPath?: string - 自定义保存路径
  - startDate?: string - 开始日期 (YYYY-MM-DD)
  - endDate?: string - 结束日期 (YYYY-MM-DD)
  - format?: "html" | "json" - 导出格式,默认 html

返回: 导出文件路径和统计信息

flomo_sync

将导出的 flomo 数据同步到 Obsidian 知识库。

参数:
  - vaultPath?: string - Obsidian 知识库路径,默认从环境变量读取
  - targetDir?: string - 目标目录,默认 "00收件箱\flomo"
  - mergeByDate?: boolean - 按日期合并,默认 true
  - convertTags?: boolean - 转换标签格式,默认 true
  - includeMetadata?: boolean - 包含元数据,默认 true
  - exportPath?: string - 自定义导出文件路径

返回: 同步统计信息

使用流程

1. 调用 flomo_login → 打开浏览器扫码登录
2. 调用 flomo_export → 导出 flomo 数据
3. 调用 flomo_sync → 同步到 Obsidian

输出格式

同步后的文件结构:

{vaultPath}/{targetDir}/
├── 2024-03-05/
│   └── memo@2024-03-05.md
├── 2024-03-06/
│   └── memo@2024-03-06.md
└── ...

Markdown 文件格式(与 flomo-importer 兼容):

# Flomo 2024-03-06

> 同步时间: 2024/3/6 12:00:00

📅 [[2024-03-06]] 14:30

memo 内容...

#标签

---

📅 [[2024-03-06]] 15:00

另一条 memo...

---

%% memo-id: flomo-xxx %%

调试

# 使用 MCP Inspector 调试
npm run inspect

# 开发模式(热重载)
npm run dev

注意事项

  1. 导出频率限制:flomo 免费用户每 7 天只能导出一次
  2. 登录态持久化:登录状态保存在 ./auth-data 目录
  3. 去重机制:通过隐藏的 memo-id 实现增量同步

技术栈

  • TypeScript + Node.js
  • @modelcontextprotocol/sdk - MCP 协议实现
  • Playwright - 浏览器自动化
  • Cheerio + Turndown - HTML 解析与转换
  • Zod - 参数验证

License

MIT