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
-
Instala uv si aún no está instalado:
curl -LsSf https://astral.sh/uv/install.sh | sh -
Clona o descarga este repositorio.
-
Instala las dependencias:
uv sync -
Configura tu clave de API de DeepInfra: Crea un archivo
.enven 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.