项目简介

Ulysses MCP 服务器是一个强大的工具,它允许您使用 AI 助手(如 Claude Desktop, Cline 等)自动化 macOS 上的 Ulysses 写作应用。通过这个服务器,AI 可以创建、管理、修改 Ulysses 中的文本、笔记、关键词和分组,甚至进行内容的读取(需授权),极大地提升写作和内容管理的效率。

主要功能点

  • 文档与分组管理: 创建新的文档(sheets)和文件夹(groups),支持指定内容、格式和位置。
  • 内容修改: 向现有文档插入或追加文本、添加笔记、设置关键词、附加图片。
  • 导航与查询: 打开 Ulysses 中的特定文档、分组或特殊区域(如“所有”、“最近7天”、“收藏夹”),获取 Ulysses 和 API 版本信息。
  • 高级操作: 移动、复制、删除文档或分组,修改文档和分组标题,删除关键词和笔记(这些操作需要授权)。
  • 安全与授权: 支持通过 Ulysses 进行授权以访问受保护的操作,并提供访问令牌管理和输入验证,确保操作安全。

安装步骤

  1. 环境准备:
    • 确保您的 macOS 系统已安装 Ulysses 写作应用
    • 安装 Node.js (推荐 18.0.0 或更高版本)。
    • 准备一个 MCP 兼容的 AI 客户端(如 Claude Desktop, Cline)。
  2. 安装服务器: 打开终端,执行以下命令安装 'ulysses-mcp':
    npm install ulysses-mcp
  3. 构建辅助应用 (Helper App): 'ulysses-mcp' 依赖一个 macOS 辅助应用来处理 Ulysses 的回调操作(例如获取内容或授权)。出于安全考虑,此辅助应用的二进制文件不包含在仓库中,您需要自行构建:
    cd node_modules/ulysses-mcp # 如果是npm安装的,先进入模块目录
    npm run build-helper
    构建成功后,这个辅助应用会自动运行。

服务器配置

为了让您的 MCP 客户端能够连接和使用 Ulysses MCP 服务器,您需要在客户端的配置中添加服务器信息。以下是两种常见 MCP 客户端的配置示例。请注意,'"/path/to/ulysses-mcp/build/index.js"' 需要替换为您的 'ulysses-mcp' 安装路径下 'build/index.js' 文件的实际路径。

  • 适用于 Claude Desktop 客户端: 在 '~/Library/Application Support/Claude/claude_desktop_config.json' 文件中添加以下配置:

    {
      "mcpServers": {
        "ulysses": {
          "command": "node",
          "args": ["/path/to/ulysses-mcp/build/index.js"]
        }
      }
    }
  • 适用于 Cline (VS Code 扩展) 客户端: 在 '~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json' 文件中添加以下配置:

    {
      "mcpServers": {
        "ulysses": {
          "disabled": false,
          "autoApprove": [],
          "type": "stdio",
          "command": "node",
          "args": ["/path/to/ulysses-mcp/build/index.js"]
        }
      }
    }

对于其他 MCP 客户端,请参考其文档,通过 'stdio' 传输方式配置服务器启动命令。

基本使用方法

配置完成后,您的 AI 助手即可通过调用 'ulysses_' 前缀的工具来与 Ulysses 交互。

  • 创建新文档: 向 AI 助手发送请求,例如创建一个日常日记:

    {
      "tool": "ulysses_new_sheet",
      "arguments": {
        "text": "# 我的日记 - 2025年10月23日\n\n今天我...",
        "group": "/我的日记",
        "format": "markdown"
      }
    }
  • 添加关键词: 为现有文档添加标签以便组织:

    {
      "tool": "ulysses_attach_keywords",
      "arguments": {
        "id": "文档标识符",
        "keywords": "草稿,博客,技术"
      }
    }
  • 读取文档内容(需授权): 对于读取和修改操作,需要先通过 'ulysses_authorize' 工具获取访问令牌。

    1. 请求授权:

      {
        "tool": "ulysses_authorize",
        "arguments": {
          "appname": "我的AI助手"
        }
      }

      Ulysses 会弹窗请求授权,您需要手动批准。批准后,服务器将返回一个 'access_token'。

    2. 使用令牌读取内容:

      {
        "tool": "ulysses_read_sheet",
        "arguments": {
          "id": "文档标识符",
          "text": "YES",
          "access_token": "您的访问令牌"
        }
      }

    重要提示: 访问令牌授予对您 Ulysses 文档库的完全访问权限,请务必妥善保管,切勿泄露或提交到版本控制。您可以在 Ulysses 偏好设置的“隐私”部分撤销令牌。

信息

分类

桌面与硬件