image-tools-mcp

Integrations

  • Provides TypeScript interfaces for tool schemas, allowing type-safe integration with the MCP client library.

图像工具 MCP

用于检索图像尺寸和压缩图像的模型上下文协议 (MCP) 服务,支持 URL 和本地文件源。

中文詳細

特征

  • 从 URL 中检索图像尺寸
  • 从本地文件获取图像尺寸
  • 使用 TinyPNG API 压缩来自 URL 的图像
  • 使用 TinyPNG API 压缩本地图像
  • 将图像转换为不同的格式(webp、jpeg/jpg、png)
  • 返回宽度、高度、类型、MIME 类型和压缩信息

示例结果

从 figma url 下载并压缩

用法

用作 MCP 服务

该服务提供五种工具功能:

  1. get_image_size - 获取远程图像的尺寸
  2. get_local_image_size - 获取本地图像的尺寸
  3. compress_image_from_url - 使用 TinyPNG API 压缩远程图像
  4. compress_local_image - 使用 TinyPNG API 压缩本地图像
  5. figma - 从 Figma API 获取图像链接并使用 TinyPNG API 压缩它们

客户端集成

要使用此 MCP 服务,您需要从 MCP 客户端连接到它。以下是如何与不同客户端集成的示例:

与 Claude Desktop 一起使用
  1. claude.ai/download安装 Claude Desktop
  2. 获取 TinyPNG API 密钥:访问TinyPNG并获取您的 API 密钥
  3. 通过编辑配置文件来配置 Claude Desktop 以使用此 MCP 服务器:
{ "mcpServers": { "image-tools": { "command": "npx", "args": ["image-tools-mcp"], "env": { "TINIFY_API_KEY": "<YOUR_TINIFY_API_KEY>", "FIGMA_API_TOKEN": "<YOUR_FIGMA_API_TOKEN>" } } } }
  1. 重启Claude桌面
  2. 要求 Claude 获取图像尺寸:“你能告诉我这张图片的尺寸吗: https://example.com/image.jpg
  3. 要求 Claude 压缩图像:“您能压缩这张图片吗: https://example.com/image.jpg
  4. 要求 Claude 压缩本地图像:“您能压缩此图像吗:D:/path/to/image.png”
  5. 要求 Claude 压缩本地图像文件夹:“您能压缩这个文件夹吗:D:/imageFolder”
  6. 要求 Claude 从 Figma API 获取图像链接:“您能从 Figma API 获取图像链接吗: https://www.figma.com/file/XXXXXXX
与 MCP 客户端库一起使用
import { McpClient } from "@modelcontextprotocol/client"; // Initialize the client const client = new McpClient({ transport: "stdio" // or other transport options }); // Connect to the server await client.connect(); // Get image dimensions from URL const urlResult = await client.callTool("get_image_size", { options: { imageUrl: "https://example.com/image.jpg" } }); console.log(JSON.parse(urlResult.content[0].text)); // Output: { width: 800, height: 600, type: "jpg", mime: "image/jpeg" } // Get image dimensions from local file const localResult = await client.callTool("get_local_image_size", { options: { imagePath: "D:/path/to/image.png" } }); console.log(JSON.parse(localResult.content[0].text)); // Output: { width: 1024, height: 768, type: "png", mime: "image/png", path: "D:/path/to/image.png" } // Compress image from URL const compressUrlResult = await client.callTool("compress_image_from_url", { options: { imageUrl: "https://example.com/image.jpg", outputFormat: "webp" // Optional: convert to webp, jpeg/jpg, or png } }); console.log(JSON.parse(compressUrlResult.content[0].text)); // Output: { originalSize: 102400, compressedSize: 51200, compressionRatio: "50.00%", tempFilePath: "/tmp/compressed_1615456789.webp", format: "webp" } // Compress local image const compressLocalResult = await client.callTool("compress_local_image", { options: { imagePath: "D:/path/to/image.png", outputPath: "D:/path/to/compressed.webp", // Optional outputFormat: "image/webp" // Optional: convert to image/webp, image/jpeg, or image/png } }); console.log(JSON.parse(compressLocalResult.content[0].text)); // Output: { originalSize: 102400, compressedSize: 51200, compressionRatio: "50.00%", outputPath: "D:/path/to/compressed.webp", format: "webp" } // Fetch image links from Figma API const figmaResult = await client.callTool("figma", { options: { figmaUrl: "https://www.figma.com/file/XXXXXXX" } }); console.log(JSON.parse(figmaResult.content[0].text)); // Output: { imageLinks: ["https://example.com/image1.jpg", "https://example.com/image2.jpg"] } ### Tool Schemas #### get_image_size ```typescript { options: { imageUrl: string // URL of the image to retrieve dimensions for } }
获取本地图像大小
{ options: { imagePath: string; // Absolute path to the local image file } }
从 URL 压缩图像
{ options: { imageUrl: string // URL of the image to compress outputFormat?: "image/webp" | "image/jpeg" | "image/jpg" | "image/png" // Optional output format } }
压缩本地图像
{ options: { imagePath: string // Absolute path to the local image file outputPath?: string // Optional absolute path for the compressed output image outputFormat?: "image/webp" | "image/jpeg" | "image/jpg" | "image/png" // Optional output format } }
figma
{ options: { figmaUrl: string; // URL of the Figma file to fetch image links from } }

技术实现

该项目基于以下库构建:

环境变量

  • TINIFY_API_KEY - 图像压缩功能所需。从TinyPNG获取 API 密钥
    • 如果未提供,则压缩工具( compress_image_from_urlcompress_local_image )将不会被注册
  • FIGMA_API_TOKEN - 从 Figma API 获取图片链接时需要。获取Figma的 API 令牌
    • 若未提供,则 Figma 工具( figma )将不会被注册

注意:无论 API 密钥如何,基本图像尺寸工具( get_image_sizeget_local_image_size )始终可用。

执照

麻省理工学院

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Image Tools MCP 是一种模型上下文协议 (MCP) 服务,它使用 TinyPNG API 从 URL 和本地文件中检索图像尺寸并压缩图像。它支持将图像转换为 webp、jpeg/jpg 和 png 等格式,并提供有关宽度、高度、类型和压缩的详细信息。

  1. 特征
    1. 示例结果
  2. 用法
    1. 用作 MCP 服务
    2. 客户端集成
  3. 技术实现
    1. 环境变量
      1. 执照

        Related MCP Servers

        • -
          security
          A
          license
          -
          quality
          An MCP server for analyzing images using OpenRouter vision models, offering capabilities like automatic image resizing, model configuration, and handling custom queries about images.
          Last updated 3 months ago
          5
          JavaScript
          MIT License
        • A
          security
          F
          license
          A
          quality
          A Model Context Protocol server that converts PDF documents into PNG images through a simple MCP tool call.
          Last updated 4 months ago
          1
          2
          Python
          • Apple
          • Linux
        • A
          security
          A
          license
          A
          quality
          MCP server for local compression of various image formats
          Last updated 13 days ago
          1
          66
          13
          TypeScript
          MIT License

        View all related MCP servers

        ID: ug3ciqhykv