Skip to main content
Glama

MCPO - MCP Pollinations Proxy

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

πŸ”— Links


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

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

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

A Docker-containerized MCP proxy that provides AI image generation, text generation, vision analysis, and text-to-speech capabilities through REST endpoints using Pollinations AI services. Enables multimodal AI interactions including image creation, transformation, OCR, and audio generation through standard HTTP APIs.

  1. 🌟 Features
    1. 🎨 Multimodal AI Capabilities
    2. πŸ”§ Technical Features
  2. πŸš€ Quick Start
    1. Prerequisites
    2. Installation & Usage
    3. Development Commands
  3. 🎯 API Endpoints
    1. πŸ–ΌοΈ Image Generation
    2. πŸ“ Text Generation
    3. πŸ‘οΈ Vision & Analysis
    4. 🎡 Audio Generation
  4. πŸ—οΈ Architecture
    1. Container Stack
    2. Service Flow
  5. πŸ“ Project Structure
    1. πŸ”§ Configuration
      1. Default Settings
      2. Environment Variables
    2. 🎨 Usage Examples
      1. Image Generation
      2. Vision Analysis
      3. Text-to-Speech
    3. 🀝 Contributing
      1. πŸ“„ License
        1. πŸ™ Acknowledgments
          1. πŸ”— Links

            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