Skip to content

feat(codex): add Flowix MCP server #22

Description

@ryan-wong-coder

Parent roadmap: #15

What

在 Flowix 桌面后端提供本地 MCP Server,让 Codex 能以结构化、可审批的方式读取当前笔记、搜索笔记本并执行有限的笔记写操作。

Why

当前笔记上下文主要被拼接进 Prompt,Codex 无法按需搜索笔记、读取关联文档或将结果精确写回指定块。MCP 可以在不把整个笔记本塞入上下文的前提下,提供可发现、可审计的双向工具能力。

Implementation

  • 提供本地 stdio MCP Server,并生成可供 Codex 配置/启用的 server 定义。
  • 首版工具:
    • flowix.read_current_note
    • flowix.search_notes
    • flowix.read_note
    • flowix.create_note
    • flowix.append_to_note
    • flowix.replace_note_block
  • 提供当前笔记、文档属性、标签和必要笔记元数据的 MCP Resources。
  • 所有读操作限制在用户已授权的 Flowix 笔记本范围内。
  • 所有创建、追加和替换操作必须经过明确审批,并展示目标笔记、位置和内容 Diff。
  • 写操作使用稳定 note/block identifier 和版本检查,避免覆盖并发编辑。
  • 搜索结果限制数量、内容长度和可访问范围,避免一次泄露整个笔记本。
  • 工具返回结构化错误,不向 Codex 暴露本地数据库路径、凭据或安全书签。
  • 增加 MCP 调用审计信息,并允许用户在偏好设置中整体禁用 Flowix MCP。

Acceptance criteria

  • Codex 能读取当前笔记并按关键词搜索已授权笔记本。
  • Codex 能在用户批准后创建笔记、追加内容或替换指定块。
  • 未授权目录、失效 note ID、版本冲突和已删除文档均安全失败。
  • 用户拒绝审批后不发生任何文件或数据库写入。
  • MCP Server 重启后不会遗留半完成写操作。
  • 工具和 Resources 具有稳定 schema、描述和自动化测试。
  • 包含权限边界、路径穿越、并发修改、超长结果和审批拒绝测试。

Dependencies

Non-goals

  • 首版不暴露任意文件系统读写或任意 SQL 查询。
  • 不允许 Codex 绕过 Flowix 的笔记本授权和写入流程。
  • 不提供远程 Streamable HTTP MCP endpoint。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions