Skip to main content
Glama

OpenRouter MCP Multimodal Server

convert_to_base64.py2.68 kB
#!/usr/bin/env python3 import base64 import argparse import os import sys from pathlib import Path def convert_image_to_base64(image_path): """Convert an image file to base64 encoding with data URI prefix""" # Get file extension and determine mime type file_ext = os.path.splitext(image_path)[1].lower() mime_type = { '.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.gif': 'image/gif', '.webp': 'image/webp', '.bmp': 'image/bmp' }.get(file_ext, 'application/octet-stream') # Read binary data and encode to base64 try: with open(image_path, 'rb') as img_file: img_data = img_file.read() base64_data = base64.b64encode(img_data).decode('utf-8') return f"data:{mime_type};base64,{base64_data}" except Exception as e: print(f"Error: {e}", file=sys.stderr) return None def save_base64_to_file(base64_data, output_path): """Save base64 data to a file""" try: with open(output_path, 'w') as out_file: out_file.write(base64_data) print(f"Base64 data saved to {output_path}") return True except Exception as e: print(f"Error saving file: {e}", file=sys.stderr) return False def main(): parser = argparse.ArgumentParser(description='Convert image to base64 for MCP server testing') parser.add_argument('image_path', help='Path to the image file') parser.add_argument('-o', '--output', help='Output file path (if not provided, output to console)') args = parser.parse_args() # Check if file exists image_path = Path(args.image_path) if not image_path.exists(): print(f"Error: File not found: {args.image_path}", file=sys.stderr) return 1 # Convert image to base64 base64_data = convert_image_to_base64(args.image_path) if not base64_data: return 1 # Output base64 data if args.output: success = save_base64_to_file(base64_data, args.output) if not success: return 1 else: print("\nBase64 Image Data:") print(base64_data[:100] + "..." if len(base64_data) > 100 else base64_data) print("\nTotal length:", len(base64_data)) print("\nTo use with MCP server in multi_image_analysis:") print(''' { "images": [ { "url": "''' + base64_data[:20] + '... (full base64 string)" ' + ''' } ], "prompt": "Please describe this image in detail. What does it show?", "model": "qwen/qwen2.5-vl-32b-instruct:free" } ''') return 0 if __name__ == "__main__": sys.exit(main())

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/stabgan/openrouter-mcp-multimodal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server