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

  1. Instale o uv se ainda não estiver instalado:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Clone ou baixe este repositório.

  3. Instale as dependências:

    uv sync
    
  4. Configure sua chave de API da DeepInfra: Crie um arquivo .env na 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.