Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
142 changes: 142 additions & 0 deletions servers/tweekit/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# TweekIT Universal Media Converter MCP Server

## Overview

TweekIT MCP Server **eliminates agentic workflow blockers** by providing on-demand file conversion and media optimization for any format. It converts **400+ file formats** to AI-compatible outputs (PDF, PNG, JPG, WebP) and optimizes media content for websites, applications, and AI workflows—enabling agents to work without interruption.

**Key Capabilities:**
- **Removes workflow blockers:** Converts any file format agents encounter, preventing "unsupported file type" failures
- **On-demand optimization:** Resize, crop, format conversion for websites and media applications in real-time
- **400+ supported formats:** DOC, XLS, PSD, DWG, TIFF, CAD files, legacy Office docs, Adobe files, and more
- **Enterprise-grade engine:** 20+ years in production, trusted by Fortune 500 companies
- **Fast, stateless processing:** <2 second average conversion time

**Perfect for agentic workflows that need to:**
- Process user-uploaded files in any format without failing
- Optimize images and media for web delivery on-demand
- Convert legacy documents (DOC, XLS, PPT) to modern formats
- Handle design files (PSD, AI, INDD) in content pipelines
- Extract and normalize content from CAD files (DWG, DXF)
- Transform any media type for downstream AI processing

## Documentation

**Full Documentation:** https://github.com/equilibrium-team/tweekit-mcp/blob/main/README.md

**Website:** https://www.tweekit.io

**Live Demo:** https://www.tweekit.io/demo

**Use Cases:** https://www.tweekit.io/use-case

## Getting Started

1. **Sign up for TweekIT** at https://www.tweekit.io
- Free tier includes 10,000 conversions
- Get your API Key and API Secret from the account portal

2. **Configure credentials** (via environment variables or tool parameters):
```bash
export TWEEKIT_API_KEY="your-key-here"
export TWEEKIT_API_SECRET="your-secret-here"
```

3. **Use in your AI agent:**
```python
# Example: Convert a legacy DOC file to PDF (removes workflow blocker)
result = await mcp.call_tool('convert', {
'inext': 'doc',
'outfmt': 'pdf',
'blob': base64_encoded_file,
'noRasterize': True # Preserve text
})

# Example: Optimize image for web on-demand
result = await mcp.call_tool('convert', {
'inext': 'tiff',
'outfmt': 'webp',
'blob': base64_encoded_image,
'width': 800, # Optimize for web
'height': 600
})

# Example: Convert a file from URL (no manual download)
result = await mcp.call_tool('convert_url', {
'url': 'https://example.com/design.psd',
'outfmt': 'png',
'width': 1200 # Optimize dimensions
})

# Example: Check supported formats (prevent failures)
formats = await mcp.call_tool('doctype', {
'extension': '*' # List all formats
})
```

## Supported Formats

**Office Documents:** DOC, DOCX, DOT, DOCM, XLS, XLSX, XLSM, PPT, PPTX, PPTM, ODT, ODS, ODP, RTF

**Adobe Files:** PSD, AI, INDD, EPS, PDF

**CAD/Design:** DWG, DXF, SKP

**Images:** TIFF, PNG, JPEG, BMP, GIF, WebP, RAW formats, ICO, SVG

**And 350+ more formats**

Use the `doctype` tool to get the complete list.

## Architecture

```
AI Agent (E2B/Local)
TweekIT MCP Server (Cloud Run - https://mcp.tweekit.io/mcp)
MediaRich Backend (ISO 27001/SAS 70 compliant data centers)
```

- **Stateless processing**: Files are not stored persistently
- **Secure**: SSL encryption in transit, automatic cleanup after processing
- **Fast**: <2 second average conversion time
- **Scalable**: Enterprise infrastructure handling millions of conversions
- **On-demand**: No pre-processing or batch jobs required

## Use Cases

### 1. Agentic Workflow Blocker Removal
**Problem:** AI agent receives user-uploaded DOC file → Agent fails with "unsupported format"
**Solution:** Agent calls TweekIT convert → DOC becomes PDF → Workflow continues

### 2. On-Demand Website Optimization
**Problem:** CMS receives high-res TIFF images → Too large for web
**Solution:** Agent calls TweekIT convert with width/height → Optimized WebP delivered

### 3. Legacy Document Modernization
**Problem:** Scanning old XLS files for data extraction
**Solution:** Agent converts XLS → CSV → Processes with standard tools

### 4. Design Asset Pipeline
**Problem:** Marketing uploads PSD mockups → Need PNGs for web
**Solution:** Agent converts PSD → PNG with transparency → Ready for website

## Rate Limits & Pricing

- **Free Tier:** 10,000 conversions/month (no credit card required)
- **Paid Plans:** Available for higher volume
- **Details:** https://www.tweekit.io/pricing

## Support

- **Email:** [email protected]
- **GitHub Issues:** https://github.com/equilibrium-team/tweekit-mcp/issues
- **Documentation:** https://github.com/equilibrium-team/tweekit-mcp

## License

MIT License - see [LICENSE](https://github.com/equilibrium-team/tweekit-mcp/blob/main/LICENSE)

## About Equilibrium

TweekIT is built on Equilibrium's MediaRich Server technology, trusted by Fortune 500 companies and major media portals since 2000. The conversion engine draws on the pedigree of DeBabelizer, the industry-standard batch processing tool. Over two decades of production use ensures reliability for enterprise-grade agentic workflows.
35 changes: 35 additions & 0 deletions servers/tweekit/server.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: tweekit
type: remote
meta:
category: media
tags:
- conversion
- media
- documents
- images
- files
- pdf
- legacy-formats
- optimization
about:
title: TweekIT Universal Media Converter
description: Eliminates agentic workflow blockers by converting 400+ file formats on-demand. Optimizes media content for websites, AI workflows, and applications. Handles legacy Office docs (DOC, XLS, PPT), Adobe files (PSD, AI), CAD formats (DWG, DXF), and more. Enterprise-grade engine with 20+ years in production. Perfect for agents that need instant file normalization and optimization without workflow interruption.
icon: https://www.tweekit.io/favicon.ico
source:
project: https://github.com/equilibrium-team/tweekit-mcp
commit: 7da992f69c3377ecf37c1c9270c707135ffb7837
remote:
transport_type: streamable-http
url: https://mcp.tweekit.io/mcp
headers:
ApiKey: "${TWEEKIT_API_KEY}"
ApiSecret: "${TWEEKIT_API_SECRET}"
config:
description: Configure TweekIT API credentials. Sign up for free at https://www.tweekit.io/ to get your API key and secret (10,000 free conversions included).
secrets:
- name: tweekit.api_key
env: TWEEKIT_API_KEY
example: your-api-key-from-tweekit-account
- name: tweekit.api_secret
env: TWEEKIT_API_SECRET
example: your-api-secret-from-tweekit-account
179 changes: 179 additions & 0 deletions servers/tweekit/tools.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
[
{
"name": "convert",
"description": "Eliminates agentic workflow blockers by converting any file format to AI-compatible output on-demand. Optimizes media for websites, documents, and applications. Supports 400+ input formats including legacy Office docs (DOC, XLS, PPT), modern Office (DOCX, XLSX, PPTX), Adobe files (PSD, AI, INDD), CAD formats (DWG, DXF), images (TIFF, RAW, EPS), and more. Can resize, crop, and apply transformations during conversion for instant optimization.",
"inputSchema": {
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"description": "TweekIT API key (falls back to TWEEKIT_API_KEY env var if omitted)"
},
"apiSecret": {
"type": "string",
"description": "TweekIT API secret (falls back to TWEEKIT_API_SECRET env var if omitted)"
},
"inext": {
"type": "string",
"description": "Input file extension (e.g., 'doc', 'xls', 'psd', 'dwg', 'tiff')"
},
"outfmt": {
"type": "string",
"description": "Desired output format: 'pdf', 'png', 'jpg', 'webp', 'gif', 'bmp', 'tiff'"
},
"blob": {
"type": "string",
"description": "Base64-encoded file data"
},
"noRasterize": {
"type": "boolean",
"description": "If true and outfmt is 'pdf', converts text documents to PDF without rasterizing (preserves text). Default: false"
},
"width": {
"type": "integer",
"description": "Desired width in pixels for optimization (0 = no resize). Default: 0"
},
"height": {
"type": "integer",
"description": "Desired height in pixels for optimization (0 = no resize). Default: 0"
},
"x1": {
"type": "integer",
"description": "Crop coordinate: left edge (negative = add padding). Default: 0"
},
"y1": {
"type": "integer",
"description": "Crop coordinate: top edge (negative = add padding). Default: 0"
},
"x2": {
"type": "integer",
"description": "Crop coordinate: right edge (>width = add padding). Default: 0"
},
"y2": {
"type": "integer",
"description": "Crop coordinate: bottom edge (>height = add padding). Default: 0"
},
"page": {
"type": "integer",
"description": "Page number to convert (for multi-page documents). Default: 1"
},
"alpha": {
"type": "boolean",
"description": "Preserve alpha channel if output format supports it. Default: true"
},
"bgColor": {
"type": "string",
"description": "Background color for padding or transparent areas (hex format, e.g., 'FFFFFF' or '#FFFFFF'). Default: '000000'"
}
},
"required": ["inext", "outfmt", "blob"]
}
},
{
"name": "convert_url",
"description": "Download and convert files from URLs on-demand, removing agentic workflow blockers. Optimizes media content for websites and applications without manual download steps. All conversion and optimization options from 'convert' tool are available. Perfect for processing web content or remote files instantly.",
"inputSchema": {
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"description": "TweekIT API key (falls back to TWEEKIT_API_KEY env var if omitted)"
},
"apiSecret": {
"type": "string",
"description": "TweekIT API secret (falls back to TWEEKIT_API_SECRET env var if omitted)"
},
"url": {
"type": "string",
"description": "HTTPS or HTTP URL pointing to the source file"
},
"outfmt": {
"type": "string",
"description": "Desired output format: 'pdf', 'png', 'jpg', 'webp', 'gif', 'bmp', 'tiff'"
},
"inext": {
"type": "string",
"description": "Optional: override input extension detection. If omitted, deduced from URL or content-type header"
},
"noRasterize": {
"type": "boolean",
"description": "If true and outfmt is 'pdf', converts text documents to PDF without rasterizing"
},
"width": {
"type": "integer",
"description": "Desired width in pixels for optimization"
},
"height": {
"type": "integer",
"description": "Desired height in pixels for optimization"
},
"page": {
"type": "integer",
"description": "Page number for multi-page documents"
},
"bgColor": {
"type": "string",
"description": "Background color (hex format)"
},
"fetchHeaders": {
"type": "object",
"description": "Optional HTTP headers to include when downloading (e.g., Authorization headers)"
}
},
"required": ["url", "outfmt"]
}
},
{
"name": "doctype",
"description": "Check if a file format is supported or list all 400+ supported input formats. Use this to validate file types before conversion or to discover what formats TweekIT can handle. Prevents workflow failures from unsupported formats.",
"inputSchema": {
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"description": "TweekIT API key (falls back to TWEEKIT_API_KEY env var if omitted)"
},
"apiSecret": {
"type": "string",
"description": "TweekIT API secret (falls back to TWEEKIT_API_SECRET env var if omitted)"
},
"extension": {
"type": "string",
"description": "File extension to check (e.g., 'doc', 'psd'), or use '*' to list all supported formats. Default: '*'"
}
}
}
},
{
"name": "search",
"description": "Perform a web search using DuckDuckGo to find public documents or images. Returns URLs that can be passed to 'convert_url' for on-demand processing and optimization. Useful for finding files to convert or gathering document links for agentic workflows.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query string"
},
"max_results": {
"type": "integer",
"description": "Maximum number of results to return (default: 5, max: 10)"
}
},
"required": ["query"]
}
},
{
"name": "fetch",
"description": "Fetch content from a URL and return it in an appropriate format based on content-type. Images returned as image resources, PDFs as PDF resources, text/JSON as text objects. Useful for downloading files before processing or optimization.",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The HTTP or HTTPS URL to fetch"
}
},
"required": ["url"]
}
}
]