AI Image MCP Server
Análise de imagens com inteligência artificial usando a API Vision da OpenAI.
Documentação
Servidor MCP de Imagens com IA
Um servidor abrangente de Model Context Protocol (MCP) que fornece tanto análise de imagens com IA quanto geração de imagens com IA usando a API de Visão da OpenAI e modelos de geração de imagens.
Requisitos do Sistema
Testado em:
- macOS 14.3.0 (Darwin 23.3.0, ARM64)
- Python 3.13.0
- uv 0.7.13
- Acesso à API da OpenAI
Recursos
🔍 Análise e Descrição de Imagens
- Análise Inteligente de Imagens: Analise imagens usando o modelo de Visão GPT-4O da OpenAI
- Análise Direcionada: Analise aspectos específicos (objetos, texto, cores, composição, emoções)
- Comparação de Imagens: Compare duas imagens e destaque semelhanças/diferenças
- Extração de Metadados: Obtenha informações técnicas sobre arquivos de imagem
- Cache Inteligente: Armazene resultados de análise em cache para evitar chamadas repetidas à API
- Múltiplos Formatos: Suporte para formatos PNG, JPEG, GIF e WebP
🎨 Geração e Edição de Imagens
- Geração de Texto para Imagem: Crie imagens a partir de prompts de texto usando DALL-E 2, DALL-E 3 ou GPT-Image-1
- Edição de Imagens: Edite imagens existentes com prompts de texto usando GPT-Image-1 ou DALL-E 2
- Variações de Imagens: Crie variações de imagens existentes usando DALL-E 2
- Saída Flexível: Salve imagens geradas localmente com nomes e diretórios personalizados
- Suporte a Modelos: Suporte completo para todos os modelos de geração de imagens da OpenAI com seus recursos específicos
Ferramentas MCP
describe_image(image_path, prompt)- Obtenha descrições detalhadas de imagensanalyze_image_content(image_path, analysis_type)- Analise aspectos específicoscompare_images(image1_path, image2_path, comparison_focus)- Compare duas imagensget_image_metadata(image_path)- Extraia metadados técnicosget_cache_info()- Veja estatísticas do cacheclear_image_cache()- Limpe resultados em cache
Instalação
- Instale as dependências:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv add mcp[cli] openai pillow requests
- Defina sua chave de API da OpenAI:
export OPENAI_API_KEY="your-api-key-here"
- Execute o servidor:
uv run main.py
Executando o Servidor
uv run main.py
Integração MCP
Claude Desktop
{
"mcpServers": {
"ai-image-mcp": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/ai-image-mcp",
"run",
"main.py"
],
"env": {
"OPENAI_API_KEY": "your-api-key-here"
}
}
}
}
Cursor
Configure o MCP nas configurações do Cursor:
{
"servers": {
"ai-image-mcp": {
"command": "uv",
"args": ["run", "main.py"],
"cwd": "/absolute/path/to/ai-image-mcp",
"env": {
"OPENAI_API_KEY": "your-api-key-here"
}
}
}
}
Tipos de Análise
general: Descrição geral da imagemobjects: Detecção e identificação de objetostext: Extração de texto e OCRcolors: Análise de cores e paletacomposition: Composição visual e layoutemotions: Conteúdo emocional e humor
Estrutura do Projeto
ai-image-mcp/
├── test_data/ # Sample images (gitignored)
├── tools/ # MCP tool definitions
├── utils/ # Utilities (caching, OpenAI client)
├── main.py # Server entry point
└── server.py # MCP server instance
Cache
- Detecção automática de alterações em arquivos via hashes SHA-256
- Expiração do cache em 30 dias
- Entradas de cache separadas para diferentes prompts/tipos de análise
- Melhorias significativas de desempenho (1000x+ mais rápido que chamadas à API)
Ferramentas Disponíveis
Ferramentas de Análise de Imagens
describe_image
Analise uma imagem e forneça uma descrição detalhada.
- Parâmetros:
image_path(str): Caminho para o arquivo de imagemprompt(str, opcional): Prompt de análise personalizado
- Suporta: PNG, JPEG, GIF, WebP
- Recursos: Cache, validação de arquivos, tratamento abrangente de erros
analyze_image_content
Realize análise direcionada de aspectos específicos da imagem.
- Parâmetros:
image_path(str): Caminho para o arquivo de imagemanalysis_type(str): Tipo de análise - "general", "objects", "text", "colors", "composition", "emotions"
- Recursos: Prompts especializados para diferentes tipos de análise
compare_images
Compare duas imagens e destaque semelhanças e diferenças.
- Parâmetros:
image1_path(str): Caminho para a primeira imagemimage2_path(str): Caminho para a segunda imagemcomparison_focus(str): No que focar na comparação
get_image_metadata
Obtenha metadados técnicos sobre um arquivo de imagem.
- Retorna: Tamanho do arquivo, dimensões, formato, modo de cor, proporção, etc.
Ferramentas de Geração de Imagens
generate_image
Gere imagens a partir de prompts de texto usando os modelos de geração de imagens da OpenAI.
- Parâmetros:
prompt(str): Descrição textual da imagem desejadamodel(str): "dall-e-2", "dall-e-3" ou "gpt-image-1" (padrão: dall-e-3)size(str, opcional): Dimensões da imagem (varia por modelo)quality(str, opcional): Configuração de qualidade (varia por modelo)style(str, opcional): "vivid" ou "natural" (apenas DALL-E 3)n(int, opcional): Número de imagens (1-10, DALL-E 3 suporta apenas 1)output_dir(str): Diretório para salvar imagens (padrão: "./generated_images")filename_prefix(str): Prefixo para nomes de arquivo (padrão: "generated")
Recursos Específicos por Modelo:
- DALL-E 2: Geração básica, tamanhos: 256x256, 512x512, 1024x1024
- DALL-E 3: Alta qualidade, estilos (vivid/natural), tamanhos: 1024x1024, 1792x1024, 1024x1792
- GPT-Image-1: Recursos avançados, suporte a transparência, controle de compressão
edit_image
Edite imagens existentes usando prompts de texto.
- Parâmetros:
image_path(str): Caminho para a imagem a ser editadaprompt(str): Descrição da edição desejadamask_path(str, opcional): Caminho para imagem de máscara (PNG com áreas de edição transparentes)model(str): "gpt-image-1" ou "dall-e-2" (padrão: gpt-image-1)size,quality,n: Opções específicas do modelooutput_dir,filename_prefix: Configuração de saída
Modelos Suportados: GPT-Image-1 (até 16 imagens, 50MB cada) e DALL-E 2 (1 PNG quadrado, máx. 4MB)
create_image_variations
Crie variações de imagens existentes usando DALL-E 2.
- Parâmetros:
image_path(str): Caminho para a imagem de origem (deve ser PNG quadrado, <4MB)n(int): Número de variações (1-10, padrão: 2)size(str): Tamanho da variação - "256x256", "512x512", "1024x1024"output_dir,filename_prefix: Configuração de saída
list_generated_images
Liste todas as imagens geradas em um diretório com metadados.
- Parâmetros:
directory(str): Diretório para escanear (padrão: "./generated_images")
- Retorna: Listagem de arquivos com tamanhos, dimensões, datas de modificação
Ferramentas de Gerenciamento de Cache
get_cache_info
Obtenha informações sobre o cache de análise (contagem de arquivos, tamanho, localização).
clear_image_cache
Limpe todos os resultados de análise em cache.
Comparação de Modelos
| Recurso | DALL-E 2 | DALL-E 3 | GPT-Image-1 |
|---|---|---|---|
| Geração | ✅ Básica | ✅ Alta Qualidade | ✅ Avançada |
| Edição | ✅ Limitada | ❌ | ✅ Avançada |
| Variações | ✅ | ❌ | ❌ |
| Máx. Imagens | 10 | 1 | 10 |
| Tamanhos | 256x256, 512x512, 1024x1024 | 1024x1024, 1792x1024, 1024x1792 | 1024x1024, 1536x1024, 1024x1536 |
| Estilos | ❌ | vivid, natural | ❌ |
| Qualidade | standard | standard, hd | auto, high, medium, low |
| Transparência | ❌ | ❌ | ✅ |
| Máx. Prompt | 1000 caracteres | 4000 caracteres | 32000 caracteres |
Exemplos de Uso
Gerar uma Imagem Básica
# Generate an image with DALL-E 3
generate_image(
prompt="A serene mountain landscape at sunset with a crystal clear lake",
model="dall-e-3",
size="1792x1024",
quality="hd",
style="natural"
)
Editar uma Imagem Existente
# Add elements to an image
edit_image(
image_path="./photos/room.png",
prompt="Add a beautiful bookshelf filled with colorful books to the left wall",
model="gpt-image-1",
quality="high"
)
Criar Variações de Imagem
# Create variations of a logo
create_image_variations(
image_path="./logos/logo.png",
n=5,
size="1024x1024"
)
Analisar Imagens Geradas
# Analyze a generated image
describe_image(
image_path="./generated_images/generated_1234567890_1.png",
prompt="Describe the artistic style and composition of this generated image"
)
Organização de Arquivos
As imagens geradas são organizadas automaticamente em diretórios separados:
./generated_images/- Gerações de texto para imagem./edited_images/- Edições de imagem./image_variations/- Variações de imagem
Os arquivos são nomeados com timestamps para evitar conflitos:
generated_1234567890_1.pngedited_1234567890_1.pngvariation_1234567890_1.png
Tratamento de Erros
O servidor inclui tratamento abrangente de erros para:
- Formatos de imagem inválidos e caminhos de arquivo incorretos
- Validação de parâmetros específicos do modelo
- Limites de tamanho e dimensão de arquivos
- Cotas de API e limitação de taxa
- Problemas de conectividade de rede
- Prompts e parâmetros malformados
Sistema de Cache
As ferramentas de análise usam um sistema de cache inteligente:
- Detecção de Alterações em Arquivos: Usa hashes SHA-256 para detectar alterações em arquivos
- Expiração em 30 Dias: Expira automaticamente entradas antigas do cache
- Operação Segura: Falhas no cache não afetam a funcionalidade principal
- Armazenamento Eficiente: Usa hashes MD5 para geração segura de chaves de cache
Requisitos
- Python 3.13+
- Chave de API da OpenAI com acesso à API de Visão e Geração de Imagens
- Pacotes necessários:
mcp[cli]>=1.9.4,openai>=1.90.0,pillow>=11.2.1,requests>=2.32.4
Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.