Notion远程控制工具

NexusFlow MCP是一个连接Notion与物理工作站的工具,通过实时监控Notion数据库状态变化,自动启动或关闭工作环境,并同步时间跟踪数据。

  • by Master-yug
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Master-yug/nexus-flow-mcp

使用说明

NexusFlow MCP

意图和行动之间的桥梁:直接从Notion远程控制您的物理工作站。

迄今为止关键项目功能的实施

  • 实时监控: 每10秒轮询一次您的Notion数据库以查看状态更改
  • 智能环境发布: 当任务设置为“聚焦”时,自动打开浏览器、文件夹和VS代码
  • 双向时间跟踪: 自动跟踪每个任务所花费的时间并将其同步回Notion
  • 系统清理: 在启动新环境之前关闭以前的浏览器会话并管理VS Code窗口
  • 心跳系统: 每5分钟更新一次“上次同步”时间戳,以显示脚本处于活动状态
  • 状态跟踪: 防止多次重新启动同一环境
  • 多浏览器支持: 适用于Chrome、Edge、Firefox等
  • 优雅关机: 使用Ctrl+C清除退出
  • 丰富的控制台输出: 带表情符号指示符号的彩色、带时间戳的消息

安装

  1. 先决条件
    • 概念集成令牌(内部集成)。
    • 与您的集成共享的Notion数据库。
    • Python已安装在本地计算机上。
  2. 克隆和安装
    git clone https://github.com/Master-yug/nexus-flow-mcp
    cd nexus-flow-mcp
    pip install -r requirements.txt
    
  3. 环境配置 在根目录中创建.env文件:
    NOTION_TOKEN=your_internal_integration_token_here
    DATABASE_ID=your_database_id_here
    
  4. 数据库模式 确保您的Notion数据库(表视图)具有以下属性:
    • 任务名称:标题
    • 状态:选择/状态(选项:对焦、待机等)
    • 文件夹路径:文本/RTF(项目的本地路径)
    • 资源:URL(主文档或仪表板链接)

用法

  1. 启动观察程序:
python notion_query.py
  1. 触发上下文切换: 转到您的Notion“指挥中心”,将项目设置为“聚焦”。
  2. 观看魔术: NexusFlow将检测到更改,执行系统清理,并自动启动您的环境。

当你点击python notion_query.py时,代码会做什么

  1. 连接测试:验证Notion API访问
  2. 配置显示:显示清理和时间跟踪设置
  3. 主动监控:每10秒对数据库进行一次民意调查
  4. 状态检测:查找具有“聚焦”状态的任务
  5. 环境启动:当检测到聚焦任务时:
    • 清理上一个会话(关闭浏览器,管理VS代码)
    • 在浏览器中打开已配置的URL
    • 在Windows资源管理器中打开文件夹
    • 在该文件夹中打开VS Code
    • 开始时间跟踪会话
  6. 连续同步:每5分钟更新一次“上次同步”时间戳 7.时间跟踪:当任务从“聚焦”状态改变时,计算并节省所花费的时间

输出是什么样子的

启动时:

============================================================
🔮 NOTION CONTEXT SWITCHER - BACKGROUND WATCHER
   with Two-Way Time Tracking
============================================================
Testing connection to Notion API...
✅ Connected to Notion API

🧹 Cleanup Configuration:
  ENABLE_CLEANUP: True
  CLOSE_BROWSER: True
  CLOSE_VSCODE: True
  USE_REUSE_WINDOW: True
  Browser targets: msedge.exe, chrome.exe, firefox.exe

⏱️  Time Tracking Configuration:
  Heartbeat Interval: 5 minutes
  Tracks time in 'Time Spent' column
  Updates 'Last Synced' every heartbeat

🔍 BACKGROUND WATCHER ACTIVE
📊 Monitoring database: 3277e5f14cae806bba52d3c246fdfcdb
⏱️  Polling every 10 seconds
💓 Heartbeat every 5 minutes
💡 Press Ctrl+C to stop
------------------------------------------------------------
[09:45:26] 🔎 Scanning... No active context

检测到新任务

[09:45:55] 🎯 NEW FOCUSING TASK DETECTED: My Awesome Project
[09:45:55]    ID: 3277e5f1-4cae-80dc-b7af-eb26f85cab40

🧹 SYSTEM CLEANUP - Closing previous session...
   Closing browser: msedge.exe
   ✅ Browser closed: msedge.exe
   ℹ️  Using VS Code --reuse-window (not closing instances)
✅ Cleanup completed

============================================================
🚀 ENVIRONMENT MANAGER - Launching: My Awesome Project
============================================================
Status: Focusing
Resources URL: https://github.com/myproject
Folder Path: C:\Users\username\Projects\MyProject
------------------------------------------------------------
✅ Status is 'Focusing' - launching environment...

🌐 Opening URL: https://github.com/myproject
📂 Opening folder: C:\Users\username\Projects\MyProject
💻 Opening VS Code in: C:\Users\username\Projects\MyProject
   Using --reuse-window flag
✅ VS Code opened successfully

✅ Environment launch complete!
🎯 Session started: 'My Awesome Project' at 09:45:55
[09:45:55] ✅ Environment launched and session started

活动会话

[09:46:05] 🔄 Scanning... Environment is currently synced for: My Awesome Project
   ⏱️  Current session: 0.2 minutes

心跳

💓 HEARTBEAT: Updated 'Last Synced' for 'My Awesome Project'

会话结束

[09:55:26] ℹ️  No 'Focusing' task. Ending session...

⏱️  Ending session for 'My Awesome Project'...
   Time spent: 9.5 minutes
💾 TIME SYNC: Added 9.5 minutes to 'My Awesome Project' (Total: 9.5 minutes)

高级配置

您可以直接在脚本中自定义自动化行为:

  • POLL_INTERVAL:设置Notion扫描的频率(默认值:10秒)。
  • ENABLE_CLEANUP:切换是否应关闭以前的应用程序。
  • 浏览器处理器名称:定义要清理的目标浏览器(Chrome、Edge、Firefox)。