{"name":"photoConvert MCP Server","description":"Agentic Photo & Video Converter with Browser Local Storage persistence","version":"1.0.0","protocol":"mcp-jsonrpc-2.0","rateLimiter":{"status":"active","limit":60,"remaining":59,"windowSeconds":60},"loadBalancer":{"status":"active","strategy":"least-connections","healthyNodes":3,"totalNodes":3,"totalRequestsProcessed":0,"nodes":[{"id":"mcp-node-core-01","name":"LOCAL RUNTIME (CORE WORKER)","role":"primary","status":"healthy","avgLatencyMs":12,"activeConnections":0},{"id":"mcp-node-edge-02","name":"CLIENT IN-MEMORY WORKER","role":"edge","status":"healthy","avgLatencyMs":18,"activeConnections":0},{"id":"mcp-node-stream-03","name":"MEDIASTREAM PIPELINE WORKER","role":"worker","status":"healthy","avgLatencyMs":25,"activeConnections":0}]},"toolsCount":9,"tools":[{"name":"convert_image","description":"Converts an image autonomously in real-time to modern formats (WebP, PNG, JPEG, AVIF) with optional resizing, compression, and grayscale. Supports zero-cloud in-memory conversion when imageBase64 is provided.","inputSchema":{"type":"object","properties":{"imageBase64":{"type":"string","description":"Base64-encoded image data or Data URI (e.g. data:image/png;base64,...). When provided, performs real-time in-memory conversion without any cloud storage."},"fileName":{"type":"string","description":"Optional file name of the original image (e.g., sample.png)"},"format":{"type":"string","enum":["webp","png","jpeg","avif","bmp"],"description":"Target image format"},"quality":{"type":"number","minimum":0.1,"maximum":1,"description":"Compression quality from 0.1 (smallest) to 1.0 (lossless)"},"maxWidth":{"type":"number","description":"Max width in pixels to downscale the image"},"maxHeight":{"type":"number","description":"Max height in pixels to downscale the image"},"applySketchFilter":{"type":"boolean","description":"Apply hand-drawn monochrome ink sketch filter matching site style"},"applyGrayscale":{"type":"boolean","description":"Convert to grayscale"},"rotate":{"type":"number","enum":[0,90,180,270],"description":"Rotate clockwise in degrees"}},"required":["format"]}},{"name":"convert_video","description":"Transcodes video to WebM in the browser or extracts poster frames or audio.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["webm","poster","audio-wav"],"description":"Action to perform: transcode to webm, grab poster frame, or extract wav audio"},"posterTime":{"type":"number","description":"Timestamp in seconds for poster frame capture (default: 0.5s)"},"posterFormat":{"type":"string","enum":["webp","jpeg","png"],"description":"Format for extracted poster frame"},"videoBitrate":{"type":"number","description":"Bitrate in bps (e.g., 2000000 for 2 Mbps)"},"videoScale":{"type":"number","enum":[1,0.75,0.5],"description":"Downscale resolution factor"},"mute":{"type":"boolean","description":"Strip audio track from output video"}},"required":["action"]}},{"name":"extract_poster_frame","description":"Captures a clean frame at any timestamp from a video file as WebP or JPEG.","inputSchema":{"type":"object","properties":{"timestamp":{"type":"number","description":"Seek second in video (e.g. 0.5, 1.0, 5.2)"},"format":{"type":"string","enum":["webp","jpeg","png"]},"quality":{"type":"number","minimum":0.1,"maximum":1}},"required":["timestamp"]}},{"name":"extract_audio","description":"Decodes video audio track and saves directly to MP3, WAV, AAC, M4A, FLAC, or OGG.","inputSchema":{"type":"object","properties":{"inputPath":{"type":"string","description":"Path to source video file on disk"},"outputFormat":{"type":"string","enum":["mp3","wav","aac","m4a","flac","ogg"],"default":"mp3","description":"Audio format output"},"bitrate":{"type":"string","default":"192k","description":"Audio bitrate for lossy formats"},"channels":{"type":"number","enum":[1,2],"default":2,"description":"Audio channels: 1 (mono) or 2 (stereo)"}}}},{"name":"convert_audio","description":"Converts standalone audio files between MP3, WAV, AAC, M4A, FLAC, and OGG.","inputSchema":{"type":"object","properties":{"inputPath":{"type":"string","description":"Path to audio file on disk"},"format":{"type":"string","enum":["mp3","wav","aac","m4a","flac","ogg"],"default":"mp3"},"bitrate":{"type":"string","default":"192k"},"sampleRate":{"type":"number"}},"required":["inputPath"]}},{"name":"convert_batch","description":"Batch converts entire folders or arrays of images on disk with zero repetitive prompts.","inputSchema":{"type":"object","properties":{"directoryPath":{"type":"string","description":"Folder path to scan and convert"},"format":{"type":"string","enum":["webp","png","jpeg","avif"],"default":"webp"},"quality":{"type":"number","default":82},"recursive":{"type":"boolean","default":false}}}},{"name":"get_media_info","description":"Unified metadata inspector for images, audio, and video files.","inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"Path to image, audio, or video file"}},"required":["filePath"]}},{"name":"optimize_for_agent","description":"Optimizes high-resolution screenshots into compact WebP for LLM vision models.","inputSchema":{"type":"object","properties":{"inputPath":{"type":"string","description":"Path to image file"},"maxDimension":{"type":"number","default":1280}},"required":["inputPath"]}},{"name":"list_storage_conversions","description":"Lists all stored media files and conversions saved in the browser IndexedDB.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Max number of items to return"},"mediaType":{"type":"string","enum":["all","image","video","audio"]}}}}]}