The TinyPNG Image Compression via MCP Server project is an integrated solution that allows users to quickly compress images using TinyPNG through Language Model (LLM) integrations. This MCP server provides a streamlined way to compress both local and remote images, making it an efficient tool for developers and users who need to optimize image sizes.
The project offers two main tools for image compression:
{
name: 'compress_local_image',
description: 'Compress a local image file',
inputSchema: {
type: 'object',
properties: {
imagePath: {
type: 'string',
description: 'The ABSOLUTE path to the image file to compress',
example: '/Users/user/Downloads/image.jpg',
},
outputPath: {
type: 'string',
description: 'The ABSOLUTE path to save the compressed image file',
example: '/Users/user/Downloads/image_compressed.jpg',
},
outputFormat: {
type: 'string',
description: 'The format to save the compressed image file',
enum: SUPPORTED_IMAGE_TYPES,
example: 'image/jpeg',
},
},
required: ['imagePath'],
},
}
{
name: 'compress_remote_image',
description: 'Compress a remote image file by giving the URL of the image',
inputSchema: {
type: 'object',
properties: {
imageUrl: {
type: 'string',
description: 'The URL of the image file to compress',
example: 'https://example.com/image.jpg',
},
outputPath: {
type: 'string',
description: 'The ABSOLUTE path to save the compressed image file',
example: '/Users/user/Downloads/image_compressed.jpg',
},
outputFormat: {
type: 'string',
description: 'The format to save the compressed image file',
enum: SUPPORTED_IMAGE_TYPES,
example: 'image/jpeg',
},
},
required: ['imageUrl'],
},
}
To configure the MCP server, follow these steps:
pnpm i
pnpm build
mcp.json
file:{
"mcpServers": {
"tinypng": {
"command": "bun", // or "node"
"args": ["/path/to/tinypng-mcp-server/src/index.ts"], // or "dist/index.js"
"env": {
"TINYPNG_API_KEY": "your-tinypng-api-key"
}
}
}
}
Run the server using bun
or node
:
bun /path/to/tinypng-mcp-server/src/index.ts
or
node /path/to/tinypng-mcp-server/dist/index.js
This project is designed to integrate TinyPNG with LLMs, providing a quick and efficient way to compress images. It supports both local and remote image compression, making it a versatile tool for developers.
This project is licensed under the Apache-2.0 license.