
元标签精灵
STDIO增强Spotlight搜索的图片元数据写入服务
增强Spotlight搜索的图片元数据写入服务
MetaTag Genie 是一个 macOS Stdio MCP 服务,专为写入图片元数据以增强 Spotlight 搜索而设计。该服务可被 AI 代理或其他需要本地管理图片元数据的应用程序调用,通过标准输入输出(Stdio)与客户端通信,提供符合 MCP (Machine Comprehension Protocol) 规范的接口。
writeImageMetadata
MCP Toolexiftool-vendored
,它会自动管理 ExifTool 的依赖要自动将 MetaTag Genie 安装到 Claude Desktop,请使用 Smithery:
npx -y @smithery/cli install @terryso/metatag_genie --client claude
# 全局安装 npm install -g metatag-genie
使用全局安装后,可以通过以下命令直接运行:
metatag-genie
或者,您可以不安装直接使用npx运行:
npx metatag-genie
这种方式不需要全局安装,也是AI代理等客户端调用的推荐方式。
# 1. 克隆仓库 git clone <repository-url> cd metatag-genie # 2. 安装依赖 npm install # 或者: yarn install # 3. 编译 TypeScript 代码 npm run build # 或者: yarn build # 4. 本地链接(可选,用于测试npx和命令行调用) npm link
安装包后,可以直接通过npx运行:
npx metatag-genie
这种方式不需要全局安装包,适合作为AI代理或其他客户端的调用方式。
开发过程中,可以直接使用TypeScript源码运行服务:
npm run start:dev
此命令使用ts-node
直接运行TypeScript代码,无需预先编译,适合快速开发和调试。
构建后,可以通过以下命令运行编译好的JavaScript代码:
npm start # 或者直接: node dist/main.js
服务启动后会监听标准输入输出(Stdio),等待MCP客户端连接并发送JSON-RPC消息。
AI代理(如Cursor)或其他客户端需要在其配置中指定命令的完整路径:
/usr/local/bin/node /path/to/metatag-genie/dist/main.js
/usr/local/bin/npx metatag-genie
注意:本服务不监听网络端口,仅通过标准输入输出通信。
在Cursor编辑器中,可以通过以下步骤集成MetaTag Genie:
.cursor/mcp.json
文件{ "mcpServers": { "MetaTagGenie": { "command": "npx", "args": [ "-y", "metatag-genie" ] } } }
配置完成后,Cursor中的AI助手将能够使用MetaTag Genie提供的writeImageMetadata工具,直接为图片添加元数据,增强Spotlight搜索体验。
通信基于 Stdio 上的 JSON-RPC 2.0 协议。
客户端需要先发送 initialize
请求,服务器响应 InitializeResult
,然后客户端发送 initialized
通知完成握手。
JSON-RPC 请求示例:
{ "jsonrpc": "2.0", "id": "request-id-123", "method": "writeImageMetadata", "params": { "filePath": "/Users/username/Pictures/photo.jpg", "metadata": { "tags": ["Vacation", "Beach"], "description": "Sunset view from the hotel.", "people": ["Alice", "Bob"], "location": "Hawaii, USA" }, "overwrite": true } }
JSON-RPC 成功响应示例:
{ "jsonrpc": "2.0", "id": "request-id-123", "result": { "success": true, "filePath": "/Users/username/Pictures/photo.jpg", "message": "Metadata successfully written." } }
注意:实际使用时 filePath
需要是有效的绝对路径。
完整的 Tool 参数、返回值和错误代码定义,请参阅 MCP Tools 定义文档。
# 运行所有单元测试和集成测试 npm test # 或者: yarn test # 在监视模式下运行测试 npm run test:watch # 或者: yarn test:watch # 运行测试并生成覆盖率报告 (输出到 coverage/ 目录) npm run test:cov # 或者: yarn test:cov
关于不同测试层级的更多信息,请参阅 测试策略文档。
项目使用 ESLint 和 Prettier 强制代码风格,详细规范请参阅 编码规范文档。
请在提交代码前运行以下命令:
# 检查代码风格 npm run lint # 自动格式化代码 npm run format
master
分支用于发布稳定版本master
创建特性分支(例如 feature/add-png-support
或 fix/handle-exiftool-error
)master
分支如需报告 Bug 或提出功能建议,请在项目的 Issue Tracker 中创建新的 Issue,并提供尽可能详细的信息。
本项目使用GitHub Actions进行持续集成和自动发布:
提交PR时请确保通过所有CI检查。如需发布新版本:
package.json
中的版本号本项目采用 MIT 许可证。详情请参阅项目根目录下的 LICENSE 文件。