Skip to main content
Glama
exrienz
by exrienz

πŸš€ MCPO - MCP Pollinations Proxy

A Docker-containerized MCP (Model Context Protocol) proxy that combines mcpo CLI tool with Pollinations MCP server, providing AI image, text, audio, and vision generation capabilities through standard REST endpoints.

🌟 Features

🎨 Multimodal AI Capabilities

  • Image Generation: Create stunning images from text prompts with 1024x1024 default resolution

  • Image-to-Image: Transform existing images using text descriptions

  • Vision Analysis: Analyze, describe, compare images and extract text (OCR)

  • Text Generation: Simple and advanced text generation with system prompts

  • Text-to-Speech: Convert text to speech with multiple voice options

  • Audio Generation: Create contextual audio responses

πŸ”§ Technical Features

  • OpenAPI REST Endpoints: Standard HTTP/REST interface for all MCP capabilities

  • Docker Containerized: Easy deployment and consistent environment

  • Real-time Processing: Direct API integration with Pollinations services

  • Multiple Model Support: Access various AI models for different tasks

πŸš€ Quick Start

Prerequisites

  • Docker and Docker Compose

  • Port 7777 available

Installation & Usage

  1. Clone the repository

    git clone <repository-url> cd mcpo
  2. Build and run the container

    docker-compose build docker-compose up
  3. Access the service

    • Service runs on: http://localhost:7777

    • OpenAPI docs: http://localhost:7777/docs

    • API endpoints: http://localhost:7777/api/...

Development Commands

# Build the container docker-compose build # Run in detached mode docker-compose up -d # View logs docker-compose logs # Stop the service docker-compose down

🎯 API Endpoints

The service exposes Pollinations MCP server functionality through REST endpoints:

πŸ–ΌοΈ Image Generation

  • POST /api/generateImage - Generate image from text prompt

  • POST /api/generateImageUrl - Get image generation URL

  • POST /api/generateImageToImage - Transform image with text prompt

  • GET /api/listImageModels - List available image models

πŸ“ Text Generation

  • POST /api/generateText - Simple text generation

  • POST /api/generateAdvancedText - Advanced text with system prompts

  • GET /api/listTextModels - List available text models

πŸ‘οΈ Vision & Analysis

  • POST /api/analyzeImageFromUrl - Analyze image from URL

  • POST /api/analyzeImageFromData - Analyze base64 image data

  • POST /api/compareImages - Compare two images

  • POST /api/extractTextFromImage - OCR text extraction

🎡 Audio Generation

  • POST /api/sayText - Text-to-speech conversion

  • POST /api/respondAudio - Generate contextual audio responses

  • GET /api/listAudioVoices - List available voices

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Client App │───▢│ MCPO Proxy │───▢│ Pollinations API β”‚ β”‚ (HTTP/REST) β”‚ β”‚ (Port 7777) β”‚ β”‚ (MCP Protocol) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Container Stack

  • Base: Node.js 18 Alpine Linux

  • Python: Installed for mcpo CLI tool

  • Port: 7777 exposed for HTTP access

  • Host: Configured to bind to 0.0.0.0

Service Flow

  1. Container starts with mcpo CLI tool

  2. mcpo proxies the pollinations-model-context-protocol MCP server

  3. MCP server capabilities become available via OpenAPI endpoints

  4. External applications use standard HTTP/REST calls

πŸ“ Project Structure

mcpo/ β”œβ”€β”€ docker-compose.yml # Docker compose configuration β”œβ”€β”€ Dockerfile # Container definition β”œβ”€β”€ CLAUDE.md # Development instructions β”œβ”€β”€ pollinations-mcp-src/ # MCP server source code β”‚ β”œβ”€β”€ src/ β”‚ β”‚ β”œβ”€β”€ services/ β”‚ β”‚ β”‚ β”œβ”€β”€ imageService.js # Image generation & transformation β”‚ β”‚ β”‚ β”œβ”€β”€ textService.js # Text generation (simple & advanced) β”‚ β”‚ β”‚ β”œβ”€β”€ audioService.js # Text-to-speech & audio β”‚ β”‚ β”‚ β”œβ”€β”€ visionService.js # Image analysis & OCR β”‚ β”‚ β”‚ β”œβ”€β”€ authService.js # Authentication β”‚ β”‚ β”‚ └── resourceService.js # Resource management β”‚ β”‚ β”œβ”€β”€ utils/ β”‚ β”‚ β”‚ β”œβ”€β”€ coreUtils.js # Core utilities β”‚ β”‚ β”‚ β”œβ”€β”€ polyfills.js # Node.js polyfills β”‚ β”‚ β”‚ └── schemaUtils.js # Schema validation β”‚ β”‚ └── index.js # Main MCP server β”‚ └── pollinations-mcp.js # Entry point └── README.md # This file

πŸ”§ Configuration

Default Settings

  • Image Resolution: 1024x1024 pixels

  • Image Quality: Private=true, NoLogo=true, Enhance=true

  • Text Generation: OpenAI-compatible models

  • Audio Format: MP3 with Alloy voice

  • Vision Models: GPT-4o for image analysis

Environment Variables

The container automatically configures the MCP proxy without additional environment variables needed.

🎨 Usage Examples

Image Generation

curl -X POST http://localhost:7777/api/generateImage \ -H "Content-Type: application/json" \ -d '{ "prompt": "A serene mountain landscape at sunset", "options": { "width": 1024, "height": 1024, "model": "flux" } }'

Vision Analysis

curl -X POST http://localhost:7777/api/analyzeImageFromUrl \ -H "Content-Type: application/json" \ -d '{ "imageUrl": "https://example.com/image.jpg", "prompt": "What do you see in this image?" }'

Text-to-Speech

curl -X POST http://localhost:7777/api/sayText \ -H "Content-Type: application/json" \ -d '{ "text": "Hello, this is a test of text to speech", "voice": "alloy", "format": "mp3" }'

🀝 Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


Built with ❀️ using Docker, Node.js, and Python

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/exrienz/pollenai-mcp'

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