DeepInfra API

Proporciona un conjunto completo de herramientas de IA a través de la API compatible con OpenAI de DeepInfra, que incluye generación de imágenes, procesamiento de texto, embeddings y reconocimiento de voz.

Documentación

Servidor de Herramientas de IA de MCP DeepInfra

Este es un servidor de Model Context Protocol (MCP) que proporciona diversas capacidades de IA utilizando la API compatible con OpenAI de DeepInfra, incluyendo generación de imágenes, procesamiento de texto, embeddings, reconocimiento de voz y más.

Estructura del Proyecto

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

Configuración

  1. Instala uv si aún no está instalado:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Clona o descarga este repositorio.

  3. Instala las dependencias:

    uv sync
    
  4. Configura tu clave de API de DeepInfra: Crea un archivo .env en la raíz del proyecto:

    DEEPINFRA_API_KEY=your_api_key_here
    

Configuración

Puedes configurar qué herramientas están habilitadas y establecer modelos predeterminados para cada herramienta utilizando variables de entorno en tu archivo .env:

  • ENABLED_TOOLS: Lista separada por comas de herramientas a habilitar. Usa "all" para habilitar todas las herramientas (por defecto: "all"). Ejemplo: ENABLED_TOOLS=generate_image,text_generation,embeddings

  • MODEL_GENERATE_IMAGE: Modelo predeterminado para la generación de imágenes (por defecto: "Bria/Bria-3.2")

  • MODEL_TEXT_GENERATION: Modelo predeterminado para la generación de texto (por defecto: "meta-llama/Llama-2-7b-chat-hf")

  • MODEL_EMBEDDINGS: Modelo predeterminado para embeddings (por defecto: "sentence-transformers/all-MiniLM-L6-v2")

  • MODEL_SPEECH_RECOGNITION: Modelo predeterminado para el reconocimiento de voz (por defecto: "openai/whisper-large-v3")

  • MODEL_ZERO_SHOT_IMAGE_CLASSIFICATION: Modelo predeterminado para la clasificación de imágenes de cero disparos (por defecto: "openai/gpt-4o-mini")

  • MODEL_OBJECT_DETECTION: Modelo predeterminado para la detección de objetos (por defecto: "openai/gpt-4o-mini")

  • MODEL_IMAGE_CLASSIFICATION: Modelo predeterminado para la clasificación de imágenes (por defecto: "openai/gpt-4o-mini")

  • MODEL_TEXT_CLASSIFICATION: Modelo predeterminado para la clasificación de texto (por defecto: "microsoft/DialoGPT-medium")

  • MODEL_TOKEN_CLASSIFICATION: Modelo predeterminado para la clasificación de tokens (por defecto: "microsoft/DialoGPT-medium")

  • MODEL_FILL_MASK: Modelo predeterminado para el relleno de máscaras (por defecto: "microsoft/DialoGPT-medium")

Las herramientas siempre utilizan los modelos especificados mediante variables de entorno. La selección de modelos se configura en el momento del inicio a través de las variables de entorno listadas anteriormente.

Ejecutar el Servidor

Para ejecutar el servidor localmente:

uv run mcp_deepinfra

O directamente con Python:

python -m mcp_deepinfra.server

Uso con Clientes MCP

Configura tu cliente MCP (por ejemplo, Claude Desktop) para usar este servidor.

Para Claude Desktop, agrega a tu claude_desktop_config.json:

{
  "mcpServers": {
    "deepinfra": {
      "command": "uv",
      "args": ["run", "mcp_deepinfra"],
      "env": {
        "DEEPINFRA_API_KEY": "your_api_key_here"
      }
    }
  }
}

Herramientas Proporcionadas

Este servidor proporciona las siguientes herramientas MCP:

  • generate_image: Genera una imagen a partir de un prompt de texto. Devuelve la URL de la imagen generada.
  • text_generation: Genera una finalización de texto a partir de un prompt.
  • embeddings: Genera embeddings para una lista de textos de entrada.
  • speech_recognition: Transcribe audio desde una URL a texto utilizando el modelo Whisper.
  • zero_shot_image_classification: Clasifica una imagen en las etiquetas candidatas proporcionadas utilizando un modelo de visión.
  • object_detection: Detecta y describe objetos en una imagen utilizando un modelo multimodal.
  • image_classification: Clasifica y describe el contenido de una imagen utilizando un modelo multimodal.
  • text_classification: Analiza el texto para detectar sentimiento y categoría.
  • token_classification: Realiza reconocimiento de entidades nombradas (NER) en texto.
  • fill_mask: Rellena tokens enmascarados en texto con palabras apropiadas.

Pruebas

Para probar el servidor localmente, ejecuta el conjunto de pruebas de 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

Las pruebas incluyen:

  • Inicialización del servidor y listado de herramientas
  • Pruebas de funcionalidad individual de herramientas mediante el protocolo JSON-RPC
  • Todas las pruebas se ejecutan sincrónicamente sin complejidad de async/await

Ejecutar con uvx

uvx está diseñado para ejecutar paquetes de Python publicados desde PyPI o GitHub. Para desarrollo local, usa el comando uv run como se describe arriba.

Si publicas este paquete en PyPI (por ejemplo, como mcp-deepinfra), puedes ejecutarlo con:

uvx mcp-deepinfra

Y configura tu cliente MCP para usar:

{
  "mcpServers": {
    "deepinfra": {
      "command": "uvx",
      "args": ["mcp-deepinfra"],
      "env": {
        "DEEPINFRA_API_KEY": "your_api_key_here"
      }
    }
  }
}

Para desarrollo local, mantente con el enfoque de uv run.