Skip to main content

AI-powered image analysis MCP server using Grok API

Project description

Image Description MCP Server

A Model Context Protocol (MCP) server that provides AI-powered image analysis using xAI's Grok API.

Purpose

This MCP server provides a secure interface for AI assistants to analyze images using Grok's advanced vision capabilities. It supports both web-hosted images and local files, offering detailed descriptions, technical metadata extraction, and optical character recognition (OCR).

Features

Current Implementation

  • describe_image_url - Analyzes images from web URLs and provides AI-generated descriptions
  • describe_image_file - Analyzes local image files and provides AI-generated descriptions
  • extract_text_from_image - Performs OCR to extract readable text from images

Prerequisites

  • Docker Desktop with MCP Toolkit enabled
  • Docker MCP CLI plugin (docker mcp command)
  • Grok API key from https://console.x.ai/

Installation

See the step-by-step instructions provided with the files.

Usage Examples

In Grok4 Code Fast, you can ask:

Local Testing

# Set environment variables for testing
export GROK_API_KEY="your-grok-api-key"

# Run directly
python image-description-mcp_server.py

# Test MCP protocol
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | python image-description-mcp_server.py

Adding New Tools

  1. Add the function to image-description-mcp_server.py
  2. Decorate with @mcp.tool()
  3. Update the catalog entry with the new tool name
  4. Rebuild the Docker image

Troubleshooting

Authentication Errors

  • Verify secrets with docker mcp secret list
  • Ensure GROK_API_KEY is set correctly
  • Check API key validity at https://console.x.ai/

Image Processing Errors

  • Ensure image URLs are accessible and valid
  • Check local file paths exist and are readable
  • Verify image formats are supported (JPEG, PNG, WebP, etc.)

Security Considerations

  • All secrets stored in Docker Desktop secrets
  • Never hardcode API keys
  • Running as non-root user in Docker
  • Images processed temporarily in memory
  • No permanent storage of image data
  • Sensitive data never logged

API Documentation

This service integrates with xAI's Grok API:

Data Sources

External Image URLs

  • Source: Web-hosted images accessible via HTTP/HTTPS
  • Access Method: HTTP GET requests using httpx
  • Purpose: Download images for analysis from any public URL
  • Limitations: Only accessible URLs; no authentication-protected images

Local Image Files

  • Source: Filesystem access to local image files
  • Access Method: Python file I/O
  • Purpose: Analyze images stored locally on the user's system
  • Supported Paths: Absolute and relative file paths
  • Supported Formats: JPEG, PNG, WebP, TIFF, GIF, BMP

Grok API

  • Source: xAI's Grok model with vision capabilities
  • Access Method: REST API calls via httpx
  • Purpose: AI-powered image analysis and description generation
  • Data Flow: Images converted to base64, sent to Grok, receive structured analysis

Image Processing

  • Source: PIL (Pillow) and OpenCV libraries
  • Access Method: Local processing
  • Purpose: Extract technical metadata and perform OCR
  • No External Calls: Pure local processing

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_7etsuo_image_description_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_7etsuo_image_description_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 545.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_7etsuo_image_description_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 36e6dcb03a77d0927ef0f5e1ebe4a4d56563e13865058026bc4fe53cf67b4bc2
MD5 181eefffdb3eecc69194de01e1d5b8a6
BLAKE2b-256 d3b843e55f0686ac132008f6574091418bb14fa53b43b2c91dd1c6186763dd3b

See more details on using hashes here.

File details

Details for the file iflow_mcp_7etsuo_image_description_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_7etsuo_image_description_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 550.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_7etsuo_image_description_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e23cc7fa61a100d1efc9a126bf705aabb5427fa15d41d82a426f3caa17b50d2
MD5 43d04efe2dc125e3e6cce4f6272bedfd
BLAKE2b-256 3667bc5acf8903b53abe2df6d72b093d4bf86e011bafc0c358a2f443d77fe11e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page