π Enhanced Model Context Protocol (MCP) server for focused image analysis using OpenRouter and Google Gemini vision models
- OpenRouter: Access to multiple vision models including x-ai/grok-4-fast:free, Claude, and more
- Google Gemini: Direct access to Gemini 2.5 Pro and Flash models
- Flexible Switching: Choose provider per request or set environment defaults
- Auto-Detection: Automatically detects available API keys and selects the best provider
- Basic Analysis: Analyze entire images with customizable prompts
- Focused Analysis: Analyze specific aspects (text, faces, objects, colors, layout)
- Smart Validation: Robust parameter and image validation with security checks
- Error Handling: Comprehensive error reporting and graceful fallbacks
- Fast Processing: Optimized for quick image analysis
- Memory Efficient: Handles large images without memory leaks
- Security First: Input validation and sanitization against malicious content
- Cross-Platform: Works on Windows, macOS, and Linux
glm-image-mcp/
βββ glm-image-mcp.js # Main MCP server β
βββ package.json # Package configuration
βββ README.md # This file
βββ LICENSE # MIT License
βββ .gitignore # Git ignore rules
βββ .github/
β βββ workflows/
β βββ test.yml # GitHub Actions workflow
βββ utils/
β βββ validation.js # Input validation utilities
βββ examples/
βββ basic-analysis.js # Basic usage examples
βββ multi-provider-config.js # Multi-provider configuration
# Install globally using npx (no npm publish needed)
npx github:QuickkApps/GLM-Image-MCP
# Or install globally using git
npm install -g git+https://github.com/QuickkApps/GLM-Image-MCP.git
# Or install locally
npm install git+https://github.com/QuickkApps/GLM-Image-MCP.gitgit clone https://github.com/QuickkApps/GLM-Image-MCP.git
cd GLM-Image-MCP
npm installnpx github:QuickkApps/GLM-Image-MCPChoose one or both providers:
# For OpenRouter (recommended for model variety)
export OPENROUTER_API_KEY="your-openrouter-api-key"
export OPENROUTER_MODEL="x-ai/grok-4-fast:free"
# For Google Gemini (fast and reliable)
export GEMINI_API_KEY="your-gemini-api-key"
export GEMINI_MODEL="gemini-2.5-pro"Configure your MCP client (like Claude Desktop, GLM, or any MCP-compatible IDE):
{
"mcpServers": {
"glm-image-mcp": {
"command": "npx",
"args": ["github:QuickkApps/GLM-Image-MCP"],
"env": {
"OPENROUTER_API_KEY": "your-openrouter-key",
"OPENROUTER_MODEL": "x-ai/grok-4-fast:free",
"GEMINI_API_KEY": "your-gemini-key",
"GEMINI_MODEL": "gemini-2.5-pro"
}
}
}
}You can set custom models via environment variables:
# For OpenRouter models
export OPENROUTER_MODEL="anthropic/claude-3-sonnet"
export OPENROUTER_MODEL="openai/gpt-4-vision-preview"
export OPENROUTER_MODEL="x-ai/grok-4-fast:free"
# For Google Gemini models
export GEMINI_MODEL="gemini-1.5-flash"
export GEMINI_MODEL="gemini-2.5-pro"
export GEMINI_MODEL="gemini-1.5-pro"
# Use with npx
OPENROUTER_MODEL="anthropic/claude-3-sonnet" npx github:QuickkApps/GLM-Image-MCP
GEMINI_MODEL="gemini-1.5-flash" npx github:QuickkApps/GLM-Image-MCPFor local development:
{
"mcpServers": {
"glm-image-mcp": {
"command": "node",
"args": ["glm-image-mcp.js"],
"cwd": "/path/to/glm-image-mcp",
"env": {
"OPENROUTER_API_KEY": "your-openrouter-key",
"GEMINI_API_KEY": "your-gemini-key"
}
}
}
}Analyze images with provider and model selection.
Parameters:
image_path(string, required): Path to image fileprompt(string, required): Analysis promptprovider(string, optional): "openrouter" or "gemini" (auto-detects if not specified)model(string, optional): Specific model to use (overrides environment default)
Describe an image in detail with a default descriptive prompt.
Parameters:
image_path(string, required): Path to image fileprompt(string, optional): Custom prompt (uses default if not provided)provider(string, optional): "openrouter" or "gemini"model(string, optional): Specific model to use
Analyze specific aspects of an image with focused prompts.
Parameters:
image_path(string, required): Path to image filefocus_area(string, optional): Specific area ("text", "faces", "objects", "colors", "layout")prompt(string, optional): Custom focused analysis promptprovider(string, optional): "openrouter" or "gemini"model(string, optional): Specific model to use
{
"image_path": "/path/to/image.jpg",
"prompt": "Describe what you see in this image"
// Automatically detects available provider
}{
"image_path": "/path/to/image.jpg",
"prompt": "Analyze this image in detail",
"provider": "openrouter",
"model": "anthropic/claude-3-sonnet"
}{
"image_path": "/path/to/image.jpg",
"prompt": "What objects do you see in this image?",
"provider": "gemini",
"model": "gemini-1.5-flash"
}{
"image_path": "/path/to/document.jpg",
"focus_area": "text",
"provider": "gemini"
}{
"image_path": "/path/to/chart.jpg",
"prompt": "Extract all data points and trends from this chart",
"provider": "openrouter",
"model": "x-ai/grok-4-fast:free"
}| Feature | OpenRouter | Google Gemini |
|---|---|---|
| Model Variety | 50+ vision models | Gemini 2.5 Pro/Flash |
| Speed | Fast | Very Fast |
| Cost | Variable (per model) | Competitive |
| Accuracy | High | Excellent |
| Best For | Model flexibility | Speed & consistency |
| Free Models | Yes (grok-4-fast) | Limited quota |
- Visit OpenRouter.ai
- Sign up and get your API key
- Set environment variable:
export OPENROUTER_API_KEY="your-key"
- Visit Google AI Studio
- Create a new API key
- Set environment variable:
export GEMINI_API_KEY="your-key"
# Test installation
npx glm-image-mcp --help
# Test with sample image (if you have one)
node examples/basic-analysis.js# Clone and test locally
git clone https://github.com/your-username/glm-image-mcp.git
cd glm-image-mcp
npm install
npm test- Request
modelparameter: Overrides all environment defaults - Request
provideronly: Uses that provider's default model - No parameters: Auto-detects provider based on available API keys
- Environment variables: Set defaults when no request parameters provided
Server Won't Start
# Check Node.js version
node --version # Should be >= 14.0.0
# Check dependencies
npm install
# Test syntax
node -c glm-image-mcp.jsAPI Key Issues
Error: No API keys found. Please set either GEMINI_API_KEY or OPENROUTER_API_KEY
Solution: Set the correct environment variables
Invalid Provider
Error: Invalid provider: invalid_provider
Solution: Use "openrouter" or "gemini"
Image File Issues
Error: Image file not found: /path/to/image.jpg
Solution: Verify the file path and that the file exists
Unsupported Format
Error: Unsupported image format: .gif. Supported formats: .jpg, .jpeg, .png, .webp, .bmp, .tiff
Solution: Convert image to supported format
- β API keys are never logged or exposed
- β Input validation prevents malicious content
- β Image buffers are validated for format and size
- β File size limits (50MB max)
- β Path traversal protection
- β Comprehensive error handling
| Metric | Value |
|---|---|
| Startup Time | < 2 seconds |
| Analysis Time | 3-10 seconds (depends on image size and model) |
| Memory Usage | ~50MB base + image size |
| Supported Formats | JPEG, PNG, WebP, BMP, TIFF |
| Max File Size | 50MB |
This MCP server works seamlessly with any MCP-compatible client:
{
"mcpServers": {
"glm-image-mcp": {
"command": "npx",
"args": ["glm-image-mcp"]
}
}
}- Configure MCP settings in your GLM 4.6 interface
- Select provider per request or set defaults
- Choose model based on your needs
- Receive text responses optimized for GLM 4.6 processing
Any MCP-compatible client can use this server with the standard configuration format.
- @modelcontextprotocol/sdk (^1.19.1) - MCP framework
- node-fetch (^2.6.7) - HTTP requests
- sharp (^0.33.0) - Image processing (optional, for enhanced validation)
npm install -g glm-image-mcp
glm-image-mcpnpx github:QuickkApps/GLM-Image-MCP
# With custom model
OPENROUTER_MODEL="anthropic/claude-3-sonnet" npx github:QuickkApps/GLM-Image-MCP
GEMINI_MODEL="gemini-1.5-flash" npx github:QuickkApps/GLM-Image-MCPdocker run -e OPENROUTER_API_KEY=your-key glm-image-mcpUse in CI/CD pipelines with GitHub Actions workflow included.
We welcome contributions! Please see our Contributing Guidelines for details.
git clone https://github.com/your-username/glm-image-mcp.git
cd glm-image-mcp
npm install
npm test- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Model Context Protocol for the MCP framework
- OpenRouter for providing access to multiple AI models
- Google Gemini for the powerful vision API
- The MCP community for feedback and contributions
- π¬ Discord: arshagor190
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
π Simple, reliable, and powerful image analysis for the MCP ecosystem
Made with β€οΈ by [QuicKK Apps]