Инструменты изображения MCP
Служба протокола контекста модели (MCP) для получения размеров изображений и сжатия изображений, поддерживающая как URL-адреса, так и локальные источники файлов.
Функции
Извлечение размеров изображения из URL-адресов
Получить размеры изображения из локальных файлов
Сжатие изображений из URL-адресов с помощью API TinyPNG
Сжатие локальных изображений с помощью API TinyPNG
Конвертируйте изображения в различные форматы (webp, jpeg/jpg, png)
Возвращает ширину, высоту, тип, тип MIME и информацию о сжатии.
Примеры результатов


скачать с figma url и сжать
Related MCP server: File Converter MCP Server
Использование
Использование в качестве MCP-сервиса
Этот сервис предоставляет пять функций инструмента:
get_image_size— Получить размеры удаленных изображенийget_local_image_size— Получить размеры локальных изображенийcompress_image_from_url— сжатие удаленных изображений с помощью API TinyPNGcompress_local_image— сжатие локальных изображений с помощью API TinyPNGfigma— извлекайте ссылки на изображения из API Figma и сжимайте их с помощью API TinyPNG
Интеграция клиента
Чтобы использовать эту службу MCP, вам необходимо подключиться к ней с клиента MCP. Вот примеры того, как интегрироваться с разными клиентами:
Использование с Claude Desktop
Установите Claude Desktop с claude.ai/download
Получите ключ API TinyPNG: посетите TinyPNG и получите свой ключ API
Настройте 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>"
}
}
}
}Перезагрузить рабочий стол Клода
Попросите Клода узнать размеры изображения: «Можете ли вы сказать мне размеры этого изображения: https://example.com/image.jpg »
Попросите Клода сжать изображение: «Можете ли вы сжать это изображение: https://example.com/image.jpg »
Попросите Клода сжать локальное изображение: «Можете ли вы сжать это изображение: D:/path/to/image.png»
Попросите Клода сжать локальную папку с изображениями: «Можете ли вы сжать эту папку: D:/imageFolder»
Попросите Клода получить ссылки на изображения из API Figma: «Можете ли вы получить ссылки на изображения из API Figma: 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
}
}фигма
{
options: {
figmaUrl: string; // URL of the Figma file to fetch image links from
}
}Журнал изменений
2025-05-12: Обновлен API Figma для поддержки дополнительных параметров, включая двукратное масштабирование изображения.
Техническая реализация
Этот проект построен на следующих библиотеках:
probe-image-size — для определения размера изображения
tinify — для сжатия изображений с помощью API TinyPNG
figma-api — для получения ссылок на изображения из API Figma
Переменные среды
TINIFY_API_KEY— Требуется для функциональности сжатия изображений. Получите свой ключ API от TinyPNGЕсли не указано иное, инструменты сжатия (
compress_image_from_urlиcompress_local_image) не будут зарегистрированы.
FIGMA_API_TOKEN- Требуется для получения ссылок на изображения из Figma API. Получите свой API-токен из FigmaЕсли не указано иное, инструмент Figma (
figma) не будет зарегистрирован.
Примечание: основные инструменты измерения размеров изображения ( get_image_size и get_local_image_size ) всегда доступны независимо от ключей API.
Лицензия
Массачусетский технологический институт