项目简介

Desktop Image Manager MCP Server 是一个基于 Model Context Protocol (MCP) 开发的桌面图片管理服务器。它允许LLM客户端(如 Claude)通过MCP协议调用本地功能,实现对桌面图片的管理和处理。

主要功能点

  • 统计桌面图片数量:快速获取您桌面上的图片文件总数。
  • 获取图片列表:列出桌面所有图片文件的名称,方便LLM进行选择和操作。
  • 图片压缩:支持对桌面上的 JPG、PNG、WebP 等格式图片进行压缩,并可自定义压缩质量,节省存储空间。

安装步骤

  1. 克隆仓库

    首先,您需要将 GitHub 仓库克隆到本地:

    git clone https://github.com/zhixiaoqiang/desktop-image-manager-mcp
    cd desktop-image-manager-mcp
  2. 安装依赖

    确保您的环境中已安装 Node.js (>= 16) 和 pnpm (>= 8)。然后使用 pnpm 安装项目依赖:

    pnpm install
  3. 构建项目

    运行以下命令构建项目,生成可执行的服务器代码:

    pnpm build
  4. 启动服务器

    构建完成后,通过以下命令启动 MCP 服务器:

    pnpm start

    服务器默认通过标准输入/输出 (stdio) 与 MCP 客户端通信。

服务器配置

要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)配合使用,您需要在客户端的配置文件中添加服务器配置信息。以 Claude Desktop 为例,您需要编辑 'claude_desktop_config.json' 文件,该文件通常位于:

  • MacOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%/Claude/claude_desktop_config.json'

在配置文件中添加如下 JSON 配置,以注册 'desktop-image-manager' 服务器:

{
  "desktop-image-manager": {  // 服务器名称,在客户端中用于标识和调用
      "command": "npx",      // 启动服务器的命令,这里使用 npx 运行 npm 包
      "args": [              // 传递给命令的参数
        "-y",                 // npx 参数,自动确认安装包
        "@jzone-mcp/desktop-image-manager-mcp" //  服务器的 npm 包名称,package.json 中 name 字段的值
      ]
    }
}

配置参数说明:

  • '"desktop-image-manager"': 服务器名称,客户端通过此名称识别和调用该服务器。您可以自定义名称,但需要与客户端调用时保持一致。
  • '"command": "npx"': 启动命令。 'npx' 是 Node.js 的包执行器,用于运行本地或 npm 安装的包。
  • '"args"': 命令参数,一个字符串数组,传递给启动命令 'npx'。
    • '"-y"': 'npx' 的参数,表示自动确认安装缺少的 npm 包,避免运行时交互。
    • '"@jzone-mcp/desktop-image-manager-mcp"': 要执行的 npm 包名称,这里指向当前 MCP 服务器的 npm 包。请确保 'package.json' 中的 'name' 字段与此处一致。

配置完成后,Claude Desktop 客户端即可识别并连接到此 MCP 服务器。

基本使用方法

配置完成后,LLM客户端(如 Claude)即可通过 MCP 协议调用此服务器提供的工具。以下是一些基本使用示例,展示了如何通过客户端调用服务器提供的功能:

  1. 统计桌面图片数量

    客户端可以调用 'count-desktop-images' 工具来获取桌面图片数量。服务器将返回包含图片数量的文本信息。

  2. 获取图片列表

    客户端可以调用 'list-desktop-images' 工具来获取桌面图片的文件名列表。服务器将返回包含图片文件名的文本列表。

  3. 压缩图片

    客户端可以调用 'compress-image' 工具来压缩指定的图片文件。调用时需要提供以下参数:

    • 'fileName': 要压缩的图片文件名 (字符串)。
    • 'quality': 压缩质量,范围 1-100 (数字,可选,默认为 80)。
    • 'outputName': 输出文件名 (字符串,可选)。

    例如,客户端可以发送如下 JSON-RPC 请求来压缩名为 'example.jpg' 的图片:

    {
      "jsonrpc": "2.0",
      "method": "callTool",
      "params": {
        "name": "compress-image",
        "arguments": {
          "fileName": "example.jpg",
          "quality": 60
        }
      },
      "id": "compress-image-1"
    }

    服务器执行压缩操作后,会将压缩结果(包括压缩前后文件大小、节省空间百分比等)以文本形式返回给客户端。压缩后的文件默认保存在桌面,文件名会添加 "-compressed" 后缀。

请注意: LLM客户端的具体调用方式和界面可能有所不同,请参考您使用的LLM客户端的文档或界面操作指南来调用 MCP 服务器的功能。

信息

分类

桌面与硬件