MooTool 开发者工具箱全景解析:7 条产品线、MCP/AI 集成与 Java Swing 功能地图

  • 桌面应用
  • 开发工具

【免费下载链接】MooTool

Handy tool set for developers

项目地址: https://gitcode.com/gh_mirrors/mo/MooTool
点击查看 免费下载

本文围绕 MooTool 开源仓库根目录 README.md 展开,系统梳理这个"为开发者打造的手边工具箱"的整体架构:7 条独立产品线的技术选型与定位、以 MooTool Next Electron 为入口的 MCP/Skill AI 集成方案、Java Swing 原版的全功能地图,以及多产品发布约定与 Maven 打包流程。读完本文,你将掌握如何选择合适的产品线、如何通过「一键安装」把 MooTool 接入 Codex / Claude Code / Cursor,以及如何为本机构建 Java 版安装包。

一、项目定位与整体形态

MooTool 是面向开发者的跨平台桌面工具箱,覆盖 Windows、Linux、macOS 三大平台。项目名中的 "Moo" 取自作者女儿的名字,作者用它支撑自己的日常开发工作,并坚持用 Swing 完成 Java 桌面端——这在如今很少见,但项目仍然持续推进。

从仓库结构看,MooTool 已经演进为**"同一仓库、多条独立产品线"**的形态。根目录下并存 src/(Java 原版)、next/(Electron 重写版)、next-tauri/、next-macos-native/、next-flutter/、next-compose/、next-fx/ 七个产品目录,每个产品拥有独立的代码、构建、版本、安装身份、数据与更新通道,可并排安装、独立演进(见 README.md 产品线表格)。

各产品线的技术选型与状态如下表所示(以当前仓库实际内容为准):

产品线技术栈目标平台当前状态
MooTool Next ElectronElectron + Vite + React + TypeScriptWindows / Linux / macOS稳定版 1.3.3,官方推荐的主力桌面版
MooTool JavaJava + SwingWindows / Linux / macOS稳定版 1.8.7,原版,仍在维护
MooTool Next TauriTauri 2 + Rust + React + TypeScriptWindows / Linux / macOSRelease candidate 0.1.0-rc.2,25 个工具,独立存储与更新
MooTool Next macOS NativeSwiftUI + AppKit + 系统框架macOS 14+预发布 0.8.0,原生工作区、JSON 库、随手记与图片附件
MooTool Next FlutterFlutter + DartWindows / Linux / macOS0.1.0 开发版,工具与桌面通道已落地
MooTool Next ComposeKotlin + Compose Multiplatform DesktopWindows / Linux / macOS0.1.0 开发版,macOS app-image 构建已验证,自带 JVM 运行时
MooTool Next FXOpenJDK + OpenJFX(JavaFX)Windows / Linux / macOS0.1.0-SNAPSHOT 早期开发版,macOS app-image 打包已实现

注意:next-macos-native/ 是当前的 macOS 原生产品线;根目录下的 macos/ 目录保存的是早期 SwiftUI 原型,两者不是一回事。

从源码佐证:Electron 版的工程入口与脚本定义在 next/package.json,产品版本号 1.3.3、应用 ID com.rememberber.mootool.next.electron、macOS 目标为 DMG、Windows 为 NSIS + portable、Linux 为 AppImage + deb,均可在此文件中核对。

二、用 MooTool 接入本地 AI:MCP 与 Skill 一键集成

这是 MooTool Next Electron(1.2.0 起)最具特色的能力:让本地 AI 客户端通过 MCP(Model Context Protocol)或独立 Skill 直接调用 MooTool 工具。关键点是工具使用应用自带的运行时,无需单独安装 Node.js,且 MooTool 窗口关闭时调用依然可用(详见 next/README.md AI integration 章节)。

2.1 支持的客户端与集成模式

客户端一键集成方式
CodexMCP、Skill,或两者同时
Claude CodeMCP、Skill,或两者同时
Cursor仅 MCP

其他支持本地 stdio MCP 的客户端,可通过设置页的「复制 MCP 配置」手动接入。需要说明的是,生成的可执行文件路径仅适用于同一台机器上的本地客户端,不能用于远程云端会话。

2.2 四个步骤完成接入

  1. 固定安装位置:macOS 移入 Applications、Windows 使用安装版、Linux 使用 deb 安装。AppImage、Windows portable 以及 macOS App Translocation 运行时不支持注册一键集成。
  2. 打开设置:进入「设置 → AI 接入」,选择客户端与集成模式(MCP / Skill / MCP + Skill),查看生成配置的预览。
  3. 一键安装:MooTool 会先完成 MCP 初始化、工具发现和一次 JSON 调用,再写入配置;写入前会备份已有文件。也可随时用「测试连接」按需验证运行时。
  4. 重启客户端:重启 AI 客户端或重新加载 MCP / Skills,并按提示启用工具。然后可以尝试「用 MooTool 格式化这段 JSON 并按 key 排序」。

各客户端对应的配置写入位置(来自 AI 接入指南):

客户端MCP 用户配置Skill 用户目录
Codex$CODEX_HOME/config.toml(默认 ~/.codex/config.toml)~/.agents/skills/mootool/
Claude Code~/.claude.json(支持 CLAUDE_CONFIG_DIR)~/.claude/skills/mootool/(支持 CLAUDE_CONFIG_DIR)
Cursor~/.cursor/mcp.json(保留 JSONC 注释)当前入口仅安装 MCP

MCP 服务名固定为 mootool。

2.3 可调用的 11 个工具

接入后 AI 客户端可调用以下工具(协议定义可在 next/electron/mcp/tools.ts 中核对):

工具能力
mootool_json_formatJSON 格式化/压缩、按 key 排序、重复 key 检测
mootool_json_queryJSONPath 查询(禁用表达式执行)
mootool_encodeBase64 / URL / 十六进制 / Unicode 编解码(URL 支持 UTF-8 / GB2312)
mootool_timestamp时间戳与日期互相转换,支持指定时区和秒/毫秒单位
mootool_diff文本比较、统一 diff 与行数统计
mootool_hashMD5、SHA-1、SHA-256/384/512 文本摘要
mootool_uuid生成 1–100 个 UUID v4
mootool_notes_search / mootool_notes_read搜索、分页读取已授权的随手记库
mootool_json_documents_search / mootool_json_documents_read搜索、分页读取已授权的 JSON 文档库

从源码看,这些工具的调用链路非常清晰:define() 为每个工具声明 zod 输入 Schema 并生成 draft-7 格式的 inputSchema;调用时先 schema.parse 校验,再复用前端既有工具函数(如 formatJsonAdvanced、compareText、encodeTools、timeTools),结果超过 1 MB 会报错,任何异常都通过 MCP isError 返回而不会伪装成功。限制同样写在协议里:普通文本上限 100,000 字符、diff 单侧上限 8,000 字符、结果上限 1 MB(源码 tools.ts)。

2.4 文档只读访问(默认关闭)

  • 在「设置 → AI 接入」中分别开启「允许读取随手记」和「允许读取 JSON 文档」,页面会显示授权的实际目录。
  • 搜索支持按标题、相对路径、内容匹配;读取随手记会解析 YAML 元数据只返回正文,JSON 文档返回原文。
  • 分页参数:搜索每页最多 50 条;读取每页最多 50,000 字符;单文件最多 2 MB;单次搜索最多检查 4,000 个目录项、读取约 10 MB 内容、目录深度最多 24。
  • 安全边界:排除隐藏文件、符号链接以及文档库根目录 .gitignore 忽略的文件;禁止绝对路径与目录穿越;工具不会创建、修改或删除文档。
  • 撤销行为:关闭开关在下一次调用生效;修改文档库位置会撤销两个库的授权;授权目录每次调用重新检查权限。
  • 工具不访问应用数据库、剪贴板或凭证,不执行 Shell、不发网络请求、不保存调用历史。

2.5 修复、更新与卸载

接入后设置页会报告每个客户端接入的状态:未安装、已安装、需要修复或冲突。移动/升级 MooTool 或 Skill 文件丢失后,打开新位置的应用并点击「一键修复 / 更新」即可。安装器不会覆盖用户改写的同名配置;用户改写过的条目会显示为冲突,需先保存或移走自定义内容。mootool 的安装记录与文档授权保存在 MooTool 用户数据目录的 ai-integration/ 中,默认以当前用户可读写权限保存。点击「卸载所选接入」只移除安装器管理的 mootool MCP 项及 SKILL.md、runtime.md,其他文件保留。

2.6 Skill 独立使用方式

Skill 安装包包含 SKILL.md 与按安装路径生成的 runtime.md。在无 MCP 连接时,Agent 读取 runtime.md,先执行 --list 获取实时参数 Schema,再把 JSON 参数通过标准输入传给 --call TOOL_NAME。命令返回 MCP 结果 JSON,失败时退出码非零。macOS/Linux 路径按 POSIX Shell 转义;Windows 提供 PowerShell 命令并显式检查退出码,以确保等待 GUI 子系统进程完成。

开发验证命令(来自 AI 接入指南):

npm run build
npm run test
npx playwright test tests/electron/ai-integration.spec.ts
node out/main/mcp.js --list
# 打包后:验证当前操作系统上真实的 ASAR 入口
node scripts/test-packaged-ai.mjs

设置 MOOTOOL_TEST_EXECUTABLE 为打包后应用可执行文件的绝对路径,可对同一安装流程执行打包版 E2E(含 ASAR 内 MCP 入口的启动验证);设置 MOOTOOL_CODEX_EXECUTABLE 可额外运行真实的 Codex CLI 验收。

三、MooTool Java:原始 Swing 版的完整功能地图

根目录 README 的"feature map"是 MooTool Java 的功能总览,共约 30 个功能模块。这里完整继承并补充关键细节。

3.1 内容与文档工具

  • Quick Note(随手记):多语言语法高亮;SQL/JSON/Java 通用代码格式化;有序/无序列表;Markdown 实时预览;Markdown 插入图片;导出/批量导出、搜索、全局查找;文档信息(创建/修改时间、字数等);链接检测与点击打开;字体、字号、列表颜色。侧边栏还提供 Quick replace(快速替换)面板,对选中的行执行批量文本操作,包括:自动保存、去首尾空格、删除空行、删除 Tab、科学计数法 ↔ 普通数字、普通数字 ↔ 千分位分隔、snake_case ↔ camelCase、大小写转换、删除换行、换行 ↔ 逗号(,、','、"," 三种)、Tab ↔ 换行、去重、去重并统计次数、转义/反转义、行反转、按 A→Z / Z→A 排序、按拼音排序。
  • JSON:格式化(可按 key 排序、忽略大小写、检查重复 key)、压缩、导出/批量导出、查找;键值互换;JSON ↔ XML;JavaBean ↔ JSON;转义/反转义;JSONPath 取值与可视化 JSONPath 选择器。
  • Text diff:左右对照差异(同步滚动)、统一 diff、复制 diff。底层基于 java-diff-utils(Myers 行级 diff + unified diff 生成),见 pom.xml 与 DiffServiceTest.java。

3.2 开发辅助工具

  • Time convert:日期/时间 ↔ 毫秒/秒时间戳互转、History、全屏时钟、时区选择器与快捷入口。
  • Translation:20+ 语言自动检测(中英日韩法西德俄等);Google/Bing 自动翻译与故障回退;生词本(搜索、创建、编辑、删除、重译)与翻译历史。翻译器工厂与单测见 src/main/java/com/luoboduner/moo/tool/util/translator/ 及 GoogleTranslatorUtilTest.java。
  • HTTP:GET/POST/PUT/DELETE/HEAD/PATCH/OPTIONS;导入 cURL;格式化 HTTP 头/体;请求管理、请求历史、搜索。
  • UA analysis:解析 User-Agent(浏览器、引擎、系统、设备类型/品牌/型号);检测移动端与爬虫;预设常见 UA;粘贴/清空;历史。
  • Encode / decode:Native ↔ Unicode、URL 编解码、Native ↔ hex、Native ↔ ASCII(十进制/十六进制码点)、ASCII → Native,全部带历史。实现类见 EnCodeForm.java。
  • Cron:表达式构建器;解析 Linux 5 字段 / Quartz 6–7 字段;校验;转自然语言;计算未来 10 次执行时间;收藏;常用示例。核心依赖 cron-utils(pom.xml),并有 CronExpressionUtilTest.java。
  • Regex:匹配测试、收藏正则、常用正则模式、历史。
  • Java:Java/Groovy 格式化与高亮、解释执行、历史。底层使用 groovy 与 javaparser-core(pom.xml)。
  • Reformat:格式化上传的文件(Nginx 配置、XML、HTML、Java);粘贴即格式化;历史。
  • Config conversion:Properties ↔ YAML、YAML 校验(语法 + 行号)、YAML 格式化;JSON ↔ YAML 标记为 TODO。YAML 校验有独立测试 YamlValidateUtilTest.java。

3.3 网络、系统与信息安全工具

  • Host:格式化/高亮、管理/查看系统 hosts、导入/导出、搜索与查找替换。
  • Network / IP:IP 查询、域名查询、netstat、ping、IPv4 ↔ long 互转、WHOIS、刷新 DNS。
  • Crypto / random:支持国密 SM2/SM3/SM4;对称加解密 AES/DES/SM4;非对称 RSA、SM2(加解密、签名、验签);摘要 MD5/SHA1/SHA256/SHA384/SHA512/SM3(支持文件与文本);Base64/Base32 编解码;随机 UUID、随机数字/字母/字母数字字符串、随机强密码(可自定义长度);历史。底层依赖 BouncyCastle(bcprov-jdk18on)与 sm-crypto 生态,见 pom.xml。
  • Environment:系统环境变量表格、Java properties、刷新/导出。
  • System info:通过 OSHI 采集本机系统/硬件信息(系统、计算机、固件、主板、CPU、内存、存储、网络),首次访问或刷新时加载(依赖 oshi-core,pom.xml)。
  • Image assistant:本地图床、截图、剪贴板导入/导出、缩放工具栏、图片 Base64 编解码、图片压缩、水印、OCR(Tesseract,依赖 tess4j)。
  • PDF:拆分与合并(依赖 iText itextpdf)。

3.4 其他工具

  • QR code:生成二维码(自定义尺寸、纠错级别、Logo;基于 ZXing core);解码二维码;从剪贴板读取;历史。
  • Calculator:四则运算、进制转换、最大公约数、最小公倍数、排列组合、历史。
  • Color board:主题/标准色板、屏幕取色、自由取色、颜色格式转换、收藏颜色、颜色运算(反色、相交、相加、求差、平均)、历史。
  • Protobuf:JSON ↔ Protobuf 二进制(Hex/Base64 输出、格式化 .proto 定义);无需 .proto 的 wire format 解码;Hex/Base64 互转;历史。
  • Message Board(留言板):全屏文字演示、预设、主题、对齐、自动缩放、演示期间防休眠(Electron 版亦实现,见 displaySleepService.ts)。
  • App & settings:同步与备份(Git 同步、数据导出)、键盘快捷键、自定义数据目录、启动时检查更新、SQL 方言、系统托盘、窗口行为(macOS/Windows 关闭按钮隐藏到 Dock/任务栏保持运行,Linux 关闭即退出)、外观(Flat Light/Dark、macOS、One Dark、Monokai 等主题、强调色、跟随系统强调色、沉浸式窗口背景、启动最大化、仅图标标签模式)、布局(面板位置上下左右、全局字体与字号)。

History 子页是多数模块的通用能力:搜索、应用、复制输入/输出、删除、清空全部。

四、多产品发布约定与版本管理

根目录 RELEASE_CONVENTIONS.md 规定了"同一仓库、多个独立产品线"的发布纪律,核心要点:

  • 版本号:各产品遵循语义化版本并独立演进,允许不同产品拥有相同的 1.0.0。
  • Git tag 唯一性:除历史 Java 产品线继续使用 v{version} 外,新产品 tag 必须带产品 ID 前缀:next-electron-v{version}、next-tauri-v{version}、next-macos-native-v{version}。例如 Java 1.8.7 → v1.8.7,Electron 1.3.3 → next-electron-v1.3.3。
  • Release 约定:每个 tag 对应一个且仅一个产品的 Release;标题必须包含完整产品名与版本号;正文依次包含英文、中文、日文三部分;只上传当前产品的安装包与更新元数据。
  • Latest 规则:仓库只有一个全局 Latest,当前表示主力稳定产品 MooTool Next Electron;Java 与其他产品的发布必须显式 make_latest: false;beta/rc 必须标记 pre-release。
  • 更新通道隔离:Java 使用 version_summary.json 与 download_links.json;Electron 使用根目录 update-manifest.json 的 next-electron 节点,客户端只比较自身产品节点的版本。更新清单中每个版本都带平台/架构/包型对应的安装包文件名与 SHA-512 校验值。

五、MooTool Java 本地构建与打包

Java 原版的最低 JDK 为 25(pom.xml 中 maven.compiler.release=25、java.version=25)。构建前需按仓库 README 构建说明 配置 IntelliJ IDEA(参见 assets/material/gui_build.png)并执行 maven clean。

5.1 准备本机打包用 JDK

打包用 JDK 可下载并缓存到本地:

  • JDK 归档:downloads/jdks/
  • 解压后的 JDK:jdks/<os>/<arch>/home

下载脚本使用 Eclipse Temurin 25,且只复用匹配的 JDK;加 --force 可替换旧缓存。python3 scripts/prepare_jdks.py 支持的目标键(源码 prepare_jdks.py)为 mac-x64、mac-arm64、windows-x64、linux-x64:

python3 scripts/prepare_jdks.py --targets mac-x64
python3 scripts/prepare_jdks.py --targets mac-arm64
python3 scripts/prepare_jdks.py --targets windows-x64
python3 scripts/prepare_jdks.py --targets linux-x64

只解析全部下载目标而不实际下载:

python3 scripts/prepare_jdks.py --targets all --resolve-only

5.2 分平台打包命令

默认 mvn clean package 使用当前 JDK 并构建 macOS 通用(Universal)包。其余平台通过 Maven profile 切换(定义于 pom.xml):

mvn clean package -Pmac-intel -Dmaven.test.skip=true
mvn clean package -Pmac-apple-silicon -Dmaven.test.skip=true
mvn clean package -Pwindows-x64 -Dmaven.test.skip=true
mvn clean package -Plinux-x64 -Dmaven.test.skip=true

四个平台 profile 会在 validate 阶段校验 jdks/ 下的缓存 JDK 是否就绪;未先运行 prepare_jdks.py 会快速失败。产物目录:

  • 默认:target/
  • Intel Mac:target/mac-intel/
  • Apple Silicon Mac:target/mac-apple-silicon/
  • Windows x64:target/windows-x64/
  • Linux x64:target/linux-x64/

5.3 打包细节(从 pom.xml 提炼)

  • 打包插件为 io.github.fvarrui:javapackager(1.7.6),mac 平台生成 tarball、Windows 生成 zipball。
  • 通过 <modules> 显式声明 JRE 模块(java.base、java.desktop、java.net.http、java.sql、jdk.compiler 等),跳过 jdeps 对依赖 jar 的扫描,规避 jdom/oshi 的 JPMS 问题。
  • <additionalModules> 额外加入 jdk.crypto.ec(国密/ECC 支持)与 jdk.charsets。
  • 打包时附带 MooTool.l4j.ini 作为额外资源。
  • 启动 JVM 参数(vmArgs):-Dswing.aatext=true -XX:+UseZGC -XX:-ZUncommit -Xms128m -Xmx512m,并带 --add-exports jdk.compiler/com.sun.tools.javac.*=ALL-UNNAMED 以支持 Java/Groovy 解释执行。
  • 主类为 com.luoboduner.moo.tool.App(入口源码 App.java),启动时会依次完成国际化初始化、Tesseract 环境配置、macOS 系统菜单适配(About/Preferences/Quit)、FlatLaf 主题注册,随后异步加载主窗口并启动 EDT 延迟监控。
  • bundleJre=true,安装包内置 JRE,普通用户无需预装 Java。

六、各产品线的源码与开发入口

如果你要深入研究某一产品线,仓库 README 的产品表格提供了各自的独立 README 作为入口:

  • Electron:源码与测试分布在 next/src/features(工具页面)、next/electron(主进程、MCP、托盘、更新)与 next/tests/electron(Playwright E2E)。常用命令:npm install、npm run dev、npm run typecheck、npm run build。命令面板是 Electron 版的高频入口:主窗口内按 Cmd+K(macOS)/ Ctrl+K(Windows/Linux),支持动作搜索、结果预览、固定常用动作、全局快捷键(默认 Cmd/Ctrl+Shift+Space,在「设置 → 键盘快捷键 → 全局命令面板」中启用,默认关闭)与托盘快捷动作。
  • Tauri:Rust 后端在 next-tauri/src-tauri/src,前置条件为 Node.js 20+、Rust stable 与平台系统依赖。
  • macOS Native:核心逻辑在 next-macos-native/Sources,构建需 Xcode 26 / CLT 26(Swift 6.2+),应用运行最低 macOS 14。构建命令:./scripts/build-app.sh --dmg(可用 --arch arm64|x86_64|universal)。本地检查可用 ./scripts/check-core.sh(解决 CLT 无 XCTest 的限制)。
  • Flutter:next-flutter/,需要 Flutter 3.47.2 / Dart 3.13,开发时务必使用独立的 --data-dir 避免污染真实数据。
  • Compose:next-compose/,需 JDK 21 + Gradle Wrapper 8.14.3,macOS 的 jpackage 会拒绝 0.x 作为 --app-version,安装包元数据映射为 1.1.0(界面仍显示 0.1.0)。
  • FX:next-fx/,需 JDK 25,安装包自带匹配架构的 OpenJDK 与 JavaFX 运行时,普通用户无需安装 Java。

七、下载与更多资源

稳定版本下载入口(来自 README Download 章节):

  • MooTool Next Electron 1.3.3(推荐,主力稳定版)
  • MooTool Java 1.8.7(原版)
  • MooTool Next Tauri 0.1.0-rc.2(release candidate)
  • MooTool Next macOS Native 0.8.0(预发布)

Flutter / Compose / FX 目前为开发版,请按各产品 README 进行源码构建;开发版本号不代表存在公开的稳定安装包。

如需深入了解某一产品线或功能模块的边界与验收记录,仓库内的深度文档包括:AI 接入指南、Electron 窗口材质与窗口布局、批量重命名边界、图片缩放行为、OCR 行为、Tauri 功能基线、macOS Native 功能对齐清单 等。

  • 桌面应用
  • 开发工具

【免费下载链接】MooTool

Handy tool set for developers

项目地址: https://gitcode.com/gh_mirrors/mo/MooTool
点击查看 免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值