open-index/open-npm huggingface dataset:
npm package: @jzone-mcp/desktop-image-manager-mcp
Description: MCP 服务器，用于管理桌面图片，提供图片文件统计、查看和压缩功能
Latest version: 1.0.5

# Desktop Image Manager MCP Server

基于 Model Context Protocol (MCP) 开发的桌面图片管理服务器，提供图片文件统计、查看和压缩功能。

<a href="https://glama.ai/mcp/servers/@zhixiaoqiang/desktop-image-manager-mcp">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@zhixiaoqiang/desktop-image-manager-mcp/badge" alt="Desktop Image Manager Server MCP server" />
</a>

## 操作示例：
[![示例图片](https://github.com/zhixiaoqiang/desktop-image-manager-mcp/blob/main/assets/example.png?raw=true)](https://claude.ai/share/0ffbad1e-502e-4188-b008-0bb966acf06d)
[https://claude.ai/share/0ffbad1e-502e-4188-b008-0bb966acf06d](https://claude.ai/share/0ffbad1e-502e-4188-b008-0bb966acf06d)

## 功能特性

- 统计桌面图片数量：快速获取桌面上的图片文件总数
- 获取图片列表：列出桌面上所有图片文件的名称
- 图片压缩：支持压缩 JPG、PNG、WebP 等格式的图片文件，可自定义压缩质量

## 实现提示

让 Trae 引用 `./demand.md` 进行功能代码生成，简化版如下

```plaintext
... （这里是已经引入的 domain knowledge）

打造一个 MCP 服务器，它能够：
- 功能：
  - 统计当前桌面上的图片文件数量
  - 获取对应文件的名称
  - 支持压缩图片

要求：
- 不需要给出 prompt 和 resource 相关代码。
- 你可以假设我的桌面路径为 /Users/{username}/Desktop
```

## 支持的图片格式

- JPG/JPEG
- PNG
- GIF
- BMP
- WebP
- TIFF
- SVG

## 环境要求

- Node.js >= 16
- pnpm >= 8

## 安装

```bash
# 克隆项目
git clone <repository-url>
cd desktop-image-manager

# 安装依赖
pnpm install
```

## 开发

```bash
# 启动开发服务器
pnpm dev
```

## 构建和运行
```bash
# 构建项目
pnpm build

# 运行服务器
pnpm start
```

## 调试

```bash
# 调试 MCP 服务
pnpm inspector
```

## MCP 工具使用说明
### 1. 统计桌面图片数量
```bash
# 构建项目
pnpm build

# 运行服务器
pnpm start
```

### 2. 获取图片列表
```typescript
// 工具名称: list-desktop-images
// 参数: 无
await client.callTool({
  name: "list-desktop-images"
});
```

### 3. 压缩图片
```typescript
// 工具名称: compress-image
// 参数:
// - fileName: 要压缩的图片文件名
// - quality: 压缩质量 (1-100)，默认 80
// - outputName: 输出文件名（可选）
await client.callTool({
  name: "compress-image",
  arguments: {
    fileName: "example.jpg",
    quality: 75,
    outputName: "example-compressed.jpg"
  }
});
```

## 开发

```bash
# 启动开发服务器
pnpm dev
```

## 安装
使用 Claude Desktop 添加如下配置 config:

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

```json
{
  "desktop-image-manager": {
      "command": "npx",
      "args": [
        "-y",
        "@jzone-mcp/desktop-image-manager-mcp"
      ]
    }
}
```

## 注意事项
1. 确保有足够的桌面访问权限
2. 大文件压缩可能需要较长时间
3. 压缩后的文件默认保存在桌面，文件名会添加 "-compressed" 后缀
## 技术栈
- TypeScript
- MCP SDK
- Sharp (图片处理)
- fs-extra (文件操作)
- zod (参数验证)

## 许可证
MIT License
```plaintext
这个 README 文件包含了项目的主要信息、安装说明、使用方法和注意事项。如果您需要添加或修改任何内容，请告诉我。
```
npm package: @jzone/cosupload
Description: tencent-cos的二次封装，可根据入参决定用固定Secret或tmpSecret
Author: zhixiaoqiang
Latest version: 1.4.6

# @jzone/cosupload

> tencent-cos的二次封装，可根据入参决定用固定Secret或tmpSecret

## 安装

```bash
# Using yarn
yarn add @jzone/cosupload
# tag
yarn add @jzone/cosupload@1.3.0
# Using npm
npm install @jzone/cosupload
# tag
npm install @jzone/cosupload@1.3.0
```

## 使用

### 固定SecretId、SecretKey

```js
import COS from '@jzone/cosupload'

const UploadFileInstance = new UploadFile({
  SecretId: 'xxx',
  SecretKey: 'xxx',
  Bucket: 'xxx',
  Region: 'xxx',
  defaultBasePath: '', // 次级目录 默认年/月/日
})

UploadFileInstance.upload({
  file: 'test', // 文件或字符串
  basePath: '', // 顶级目录
  success: data => console.warn(data)
})

```

### 临时SecretId、SecretKey

```js
import COS from '@jzone/cosupload'

const UploadFileInstance = new UploadFile({
  Bucket: 'xxx',
  Region: 'xxx',
  defaultBasePath: '', // 次级目录 默认年/月/日
  tmpSecretUrl: 'xxx', // 获取tmpSecret相关信息的接口，接口返回结构{ data:{credentials, expiredTime } } })

UploadFileInstance.upload({
  file: 'test', // 文件或字符串
  basePath: '', // 顶级目录
  success: data => console.warn(data)
})

```

## 发布

```bash
 # base
 yarn prod

 # tag
 yarn prod tag
```
npm package: @jzone/eslint-config
Description: An ESLint Shareable Config
Author: zhixiaoqiang
Latest version: 1.0.9

# @jzone/eslint-config

> An ESLint Shareable Config 

## Install

```bash
# npm
npm install @jzone/eslint-config -D

# yarn
yarn add @jzone/eslint-config -D
```

## Webpack Usage

```js
// .eslintrc.js
module.exports = {
  extends: ['@jzone/eslint-config'],
}
```

```js
// .eslintignore
# Ignore files

node_modules/*
build/*
```

## Introduction

1. use `babel-eslint` parser
2. extends `eslint-config-standard` and `eslint-config-standard-jsx`
3. add `react-hooks` plugin
4. other...
npm package: @jzone/normalize
Description: A cross-browser CSS foundation
Author: zhixiaoqiang
Latest version: 1.1.2

# @jzone/normalize

[@jzone/normalize] is a CSS library that provides consistent,
cross-browser default styling of HTML elements.

## Install

```sh
npm install @jzone/normalize --save
```

#### Webpack Usage

Import [@jzone/normalize] in CSS:

```css
@import '~@jzone/normalize';
```

Alternatively, import [@jzone/normalize] in JS:

```js
import '@jzone/normalize';
```

In `webpack.config.js`, use the appropriate loaders:

```js
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [ 'style-loader', 'css-loader' ]
      }
    ]
  }
}
```

**Download**

See https://github.com/zhixiaoqiang/normalize#readme

<br/>
<br/>