DeepInfra API
Oferece um conjunto completo de ferramentas de IA através da API compatível com OpenAI da DeepInfra, incluindo geração de imagens, processamento de texto, embeddings e reconhecimento de fala.
Documentação
Servidor de Ferramentas de IA MCP DeepInfra
Este é um servidor Model Context Protocol (MCP) que fornece várias capacidades de IA usando a API compatível com OpenAI da DeepInfra, incluindo geração de imagens, processamento de texto, embeddings, reconhecimento de fala e mais.
Estrutura do Projeto
mcp-deepinfra/
├── src/
│ └── mcp_deepinfra/
│ ├── __init__.py # Package initialization
│ └── server.py # Main MCP server implementation
├── tests/
│ ├── conftest.py # Pytest fixtures and configuration
│ ├── test_server.py # Server initialization tests
│ └── test_tools.py # Individual tool tests
├── pyproject.toml # Project configuration and dependencies
├── uv.lock # Lock file for uv package manager
├── run_tests.sh # Convenience script for running tests
└── README.md # This file
Configuração
-
Instale o uv se ainda não estiver instalado:
curl -LsSf https://astral.sh/uv/install.sh | sh -
Clone ou baixe este repositório.
-
Instale as dependências:
uv sync -
Configure sua chave de API da DeepInfra: Crie um arquivo
.envna raiz do projeto:DEEPINFRA_API_KEY=your_api_key_here
Configuração
Você pode configurar quais ferramentas estão habilitadas e definir modelos padrão para cada ferramenta usando variáveis de ambiente no seu arquivo .env:
-
ENABLED_TOOLS: Lista de ferramentas separadas por vírgula para habilitar. Use "all" para habilitar todas as ferramentas (padrão: "all"). Exemplo:ENABLED_TOOLS=generate_image,text_generation,embeddings -
MODEL_GENERATE_IMAGE: Modelo padrão para geração de imagens (padrão: "Bria/Bria-3.2") -
MODEL_TEXT_GENERATION: Modelo padrão para geração de texto (padrão: "meta-llama/Llama-2-7b-chat-hf") -
MODEL_EMBEDDINGS: Modelo padrão para embeddings (padrão: "sentence-transformers/all-MiniLM-L6-v2") -
MODEL_SPEECH_RECOGNITION: Modelo padrão para reconhecimento de fala (padrão: "openai/whisper-large-v3") -
MODEL_ZERO_SHOT_IMAGE_CLASSIFICATION: Modelo padrão para classificação de imagens zero-shot (padrão: "openai/gpt-4o-mini") -
MODEL_OBJECT_DETECTION: Modelo padrão para detecção de objetos (padrão: "openai/gpt-4o-mini") -
MODEL_IMAGE_CLASSIFICATION: Modelo padrão para classificação de imagens (padrão: "openai/gpt-4o-mini") -
MODEL_TEXT_CLASSIFICATION: Modelo padrão para classificação de texto (padrão: "microsoft/DialoGPT-medium") -
MODEL_TOKEN_CLASSIFICATION: Modelo padrão para classificação de tokens (padrão: "microsoft/DialoGPT-medium") -
MODEL_FILL_MASK: Modelo padrão para preenchimento de máscara (padrão: "microsoft/DialoGPT-medium")
As ferramentas sempre usam os modelos especificados via variáveis de ambiente. A seleção de modelos é configurada no momento da inicialização através das variáveis de ambiente listadas acima.
Executando o Servidor
Para executar o servidor localmente:
uv run mcp_deepinfra
Ou diretamente com Python:
python -m mcp_deepinfra.server
Usando com Clientes MCP
Configure seu cliente MCP (ex.: Claude Desktop) para usar este servidor.
Para Claude Desktop, adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"deepinfra": {
"command": "uv",
"args": ["run", "mcp_deepinfra"],
"env": {
"DEEPINFRA_API_KEY": "your_api_key_here"
}
}
}
}
Ferramentas Fornecidas
Este servidor fornece as seguintes ferramentas MCP:
generate_image: Gere uma imagem a partir de um prompt de texto. Retorna a URL da imagem gerada.text_generation: Gere conclusão de texto a partir de um prompt.embeddings: Gere embeddings para uma lista de textos de entrada.speech_recognition: Transcreva áudio de uma URL para texto usando o modelo Whisper.zero_shot_image_classification: Classifique uma imagem em rótulos candidatos fornecidos usando modelo de visão.object_detection: Detecte e descreva objetos em uma imagem usando modelo multimodal.image_classification: Classifique e descreva o conteúdo de uma imagem usando modelo multimodal.text_classification: Analise texto para sentimento e categoria.token_classification: Realize reconhecimento de entidade nomeada (NER) em texto.fill_mask: Preencha tokens mascarados em texto com palavras apropriadas.
Testes
Para testar o servidor localmente, execute a suíte de testes pytest:
# Install test dependencies
uv sync --extra test
# Run all tests
pytest
# Run with verbose output
pytest -v
# Run specific test file
pytest tests/test_tools.py
# Use the convenience script
./run_tests.sh
Os testes incluem:
- Inicialização do servidor e listagem de ferramentas
- Testes de funcionalidade de ferramentas individuais via protocolo JSON-RPC
- Todos os testes são executados de forma síncrona, sem complexidade async/await
Executando com uvx
uvx é projetado para executar pacotes Python publicados do PyPI ou GitHub. Para desenvolvimento local, use o comando uv run conforme descrito acima.
Se você publicar este pacote no PyPI (ex.: como mcp-deepinfra), você pode executá-lo com:
uvx mcp-deepinfra
E configure seu cliente MCP para usar:
{
"mcpServers": {
"deepinfra": {
"command": "uvx",
"args": ["mcp-deepinfra"],
"env": {
"DEEPINFRA_API_KEY": "your_api_key_here"
}
}
}
}
Para desenvolvimento local, mantenha a abordagem uv run.