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