Token导航 LogoToken导航TokenDH.com
Sharp MCP (Great Sumini) logo
设计创作stdio官方级别未说明来源级核验

Sharp MCP (Great Sumini)

MCP Server

@smithery/cli@latest

Sharp MCP是一个基于Model Context Protocol的图像会话管理和处理工具,提供图像存储、元数据提取、颜色提取、背景去除、区域裁剪和图像压缩等功能。

工具数

0

提示词数

0

GitHub Stars

11

资源数

0
图像处理会话管理TypeScriptClaudeClaude DesktopClaudeCursorWindsurfClineVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

greatSumini

提供方

greatSumini

最后核验

2026/5/17 20:32

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y @smithery/cli@latest install sharp-mcp --client <CLIENT_NAME>

详细介绍

夏普MCP

Sharp MCP Banner

](https://www.npmjs.com/package/sharp-mcp) ![License: MIT](https://opensource.org/licenses/MIT) ](https://nodejs.org/) ![TypeScript](https://www.typescriptlang.org/)

用于图像会话管理和处理的MCP(模型上下文协议)服务器。提供用于在会话中存储图像以及提取图像元数据和颜色的工具。

特性

Image Processing Workflow

  • 创建会话:将base64图像存储在具有唯一ID的内存会话中
  • create_session_by_path:从图像文件路径创建会话(自动base64转换)
  • list_session:列出所有活动的映像会话
  • get_dimensions:获取图像尺寸和MIME类型
  • 选择颜色:从指定区域提取平均颜色
  • 拆除背景:使用基于ML的分割从图像中删除背景
  • 提取区域:从图像中裁剪矩形区域
  • 压缩图像:通过格式转换(JPEG、PNG、WebP)压缩图像
  • 使用TypeScript构建类型安全
  • 用途 锋利 用于高性能图像处理

安装

NPM

npm install -g sharp-mcp

铁匠铺

通过以下方式自动为任何客户端安装Sharp MCP 铁匠铺:

npx -y @smithery/cli@latest install sharp-mcp --client 

可用客户端: cursor, claude, vscode, windsurf, cline, zed等等。

MCP客户端集成

Sharp MCP可以与支持模型上下文协议(MCP)的各种AI编码助手和IDE集成。

需求

  • Node.js>=v18.0.0
  • MCP兼容客户端(Cursor、Claude Code、VS Code、Windsurf等)

Install in Cursor

首选 Settings -> Cursor Settings -> MCP -> Add new global MCP server

将以下配置添加到您的 ~/.cursor/mcp.json 文件:

{
  "mcpServers": {
    "sharp": {
      "command": "npx",
      "args": ["-y", "sharp-mcp"]
    }
  }
}

Install in Claude Code

运行此命令:

claude mcp add sharp -- npx -y sharp-mcp

Install in VS Code

将此添加到您的VS Code MCP配置文件中。看 VS代码MCP文档 了解更多信息。

"mcp": {
  "servers": {
    "sharp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "sharp-mcp"]
    }
  }
}

Install in Windsurf

将此添加到您的Windsurf MCP配置文件中:

{
  "mcpServers": {
    "sharp": {
      "command": "npx",
      "args": ["-y", "sharp-mcp"]
    }
  }
}

Install in Claude Desktop

打开Claude Desktop开发人员设置并编辑您的 claude_desktop_config.json 文件:

{
  "mcpServers": {
    "sharp": {
      "command": "npx",
      "args": ["-y", "sharp-mcp"]
    }
  }
}

Install in OpenAI Codex

将此添加到您的 codex.toml~/.codex/config.toml 文件:

[mcp_servers.sharp]
command = "npx"
args = ["-y", "sharp-mcp"]

可用工具

创建会话

使用提供的映像有效负载创建新会话,并返回唯一的会话ID。

参数:

  • image_payload (字符串,必填):Base64编码图像数据
  • description (字符串,可选):图像的可选描述

退货:

{ "sessionId": "img_abc123xyz" }

例子:

{
  "image_payload": "iVBORw0KGgoAAAANSUhEUgAA...",
  "description": "Screenshot of the homepage"
}

create_session_by_path

通过从指定的绝对文件路径读取图像来创建新会话。自动将文件转换为base64并验证其是否为有效图像。

参数:

  • path (string,必填):图像文件的绝对路径
  • description (字符串,可选):图像的可选描述

退货:

{
  "sessionId": "img_abc123xyz",
  "source_path": "/path/to/image.png",
  "file_size": 46849
}

例子:

{
  "path": "/Users/username/images/screenshot.png",
  "description": "Homepage screenshot"
}

错误响应:

  • 相对路径: Path must be absolute. Received relative path: "./image.png"
  • 找不到文件: File not found: "/path/to/image.png"
  • 无效图像: Invalid or corrupted image file: "/path/to/file.txt"

list_session

列出所有活动会话及其会话ID、图像有效载荷和描述。

参数:

退货:

[
  {
    "sessionId": "img_abc123xyz",
    "image_payload": "iVBORw0KGgoAAAANSUhEUgAA...",
    "description": "Screenshot of the homepage"
  }
]

get_dimensions

获取会话中存储的图像的维度和MIME类型。

参数:

  • sessionId (string,必填):从create_session或create_session_by_path返回的会话ID

退货:

{
  "width": 1920,
  "height": 1080,
  "mimeType": "image/png"
}

错误响应(无效会话):

Invalid or non-existent session ID. Please call create_session first to obtain a valid session ID.

选择颜色

从以指定坐标为中心的方形区域拾取平均颜色。

参数:

  • sessionId (string,必填):从create_session返回的会话ID
  • x (数字,必填):中心点的X坐标
  • y (数字,必填):中心点的Y坐标
  • radius (数字,可选,默认值:5):采样区域的半径。采样区域将是一个(半径×2)大小的正方形。

退货:

{
  "r": 255,
  "g": 128,
  "b": 64,
  "hex": "#FF8040"
}

错误响应(超出界限):

Coordinates (2000, 500) exceed image bounds (1920x1080).

拆除背景

使用基于ML的分割从图像中删除背景。返回具有透明度的PNG。由...驱动 @imgly/背景移除节点 用于精确的对象检测。

参数:

  • sessionId (string,必填):从create_session返回的会话ID
  • output_path (string,可选):保存输出PNG文件的绝对路径。如果未提供,则返回base64有效载荷。

返回(不带output_path):

{
  "image_payload": "iVBORw0KGgoAAAANSUhEUgAA...",
  "mime_type": "image/png"
}

返回(带output_path):

{
  "path": "/path/to/output.png"
}

例子:

{
  "sessionId": "img_abc123xyz"
}

注: 由于下载并缓存了ML模型文件(~10-50MB),第一次运行可能需要更长的时间。

之前和之后:

之前之后
BeforeAfter

提取区域

从会话中存储的图像中提取(裁剪)矩形区域。将裁剪后的图像作为文件或base64有效载荷返回。

参数:

  • sessionId (string,必填):从create_session返回的会话ID
  • x (数字,必填):裁剪区域左上角的X坐标
  • y (数字,必填):裁剪区域左上角的Y坐标
  • width (数字,必填):作物区域的宽度
  • height (数字,必填):作物区域的高度
  • output_path (字符串,可选):保存裁剪图像的绝对路径。如果未提供,则返回base64有效载荷。

返回(不带output_path):

{
  "base64": "iVBORw0KGgoAAAANSUhEUgAA...",
  "mimeType": "image/png"
}

返回(带output_path):

{
  "success": true,
  "path": "/path/to/cropped.png"
}

例子:

{
  "sessionId": "img_abc123xyz",
  "x": 100,
  "y": 50,
  "width": 200,
  "height": 150,
  "output_path": "/path/to/cropped.png"
}

错误响应:

  • 越界: Region (100, 50, 200x150) exceeds image bounds (150x100)
  • 无效坐标: Invalid coordinates: x and y must be non-negative values.
  • 无效尺寸: Invalid dimensions: width and height must be positive values.

压缩图像

压缩具有指定格式和质量的图像。支持JPEG、PNG和WebP格式。将压缩图像作为文件或base64有效载荷返回。

参数:

  • sessionId (string,必填):从create_session返回的会话ID
  • format (字符串,可选):输出格式:“jpeg”、“png”或“webp”。如果未指定,则保留原始格式。
  • quality (数字,可选,默认值:80):压缩质量(1-100)。值越高意味着质量越好,但文件大小越大。
  • output_path (string,可选):保存压缩图像的绝对路径。如果未提供,则返回base64有效载荷。

返回(不带output_path):

{
  "base64": "iVBORw0KGgoAAAANSUhEUgAA...",
  "mimeType": "image/jpeg",
  "format": "jpeg",
  "originalSize": 245632,
  "compressedSize": 98234,
  "compressionRatio": "60.01%"
}

返回(带output_path):

{
  "success": true,
  "path": "/path/to/compressed.jpg",
  "format": "jpeg",
  "originalSize": 245632,
  "compressedSize": 98234,
  "compressionRatio": "60.01%"
}

例子:

{
  "sessionId": "img_abc123xyz",
  "format": "webp",
  "quality": 75,
  "output_path": "/path/to/output.webp"
}

注: 对于PNG格式,质量参数转换为压缩级别(质量100→ 级别0,质量0→ 9级)。

使用示例

示例1:分析图像

在光标/克劳德代码中:

Read the screenshot at ./screenshot.png, create a session with it,
and tell me its dimensions.

示例2:从UI提取颜色

在光标/克劳德代码中:

I have a UI screenshot. Create a session with it and pick the colors
at these coordinates: (100, 50), (200, 150), (300, 200).

示例3:获取图像元数据

在光标/克劳德代码中:

Load ./logo.png into a session and get its size and format.

示例4:从图像中删除背景

在光标/克劳德代码中:

Create a session with ./product-photo.jpg and remove the background.
Save the result to ./product-transparent.png

示例5:压缩和转换图像格式

在光标/克劳德代码中:

Load ./large-image.png into a session and compress it to WebP format
with 75% quality. Save to ./optimized.webp

命令行用法

直接运行服务器:

# Using stdio transport (default)
sharp-mcp

# Using HTTP transport
sharp-mcp --transport http --port 5000

CLI选项:

  • --transport :传输类型(默认值:stdio)
  • --port :HTTP传输端口(默认值:5000)

发展

# Install dependencies
npm install

# Run in development mode
npm run dev

# Run tests
npm test

# Build
npm run build

# Type check
npm run typecheck

# Lint
npm run lint

建筑

Architecture Diagram

该项目采用模块化架构:

  • 服务/:会话存储和图像处理服务

- session-store.ts:内存会话管理 - image-processor.ts:基于Sharp的图像分析

  • 工具/:MCP工具实现

- create-session.ts:从base64创建会话 - create-session-by-path.ts:从文件路径创建会话 - list-session.ts:会话列表 - get-image-size.ts:图像维度提取(get_dimensions) - pick-color.ts:颜色提取 - remove-background.ts:基于ML的背景删除 - extract-region.ts:图像裁剪 - compress-image.ts:图像压缩

  • utils/:共享公用设施

- validation.ts:会话ID验证

  • server.ts:主MCP服务器设置和配置

支持的图像格式

  • JPEG(.jpg、.JPEG)
  • PNG(.PNG)
  • GIF(.GIF)
  • WebP(.WebP)
  • TIFF(.TIFF)
  • AVIF(.AVIF)

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。

作者

choesumin

目录标签

目录标签

图像处理会话管理TypeScriptClaude本地部署元数据提取颜色提取背景去除图像压缩

支持客户端

Claude DesktopClaudeCursorWindsurfClineVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@smithery/cli@latest

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP