PiAPI

El servidor MCP de PiAPI permite al usuario generar contenido multimedia con Midjourney/Flux/Kling/Hunyuan/Udio/Trellis directamente desde Claude o cualquier otra aplicación compatible con MCP.

Documentación

piapi-mcp-server

Website Documentation Discord

smithery badge

Una implementación en TypeScript de un servidor de Protocolo de Contexto de Modelo (MCP) que se integra con la API de PiAPI. PiAPI permite al usuario generar contenido multimedia con Midjourney/Flux/Kling/LumaLabs/Udio/Chrip/Trellis directamente desde Claude o cualquier otra aplicación compatible con MCP.

PiAPI-Server MCP server

Características (más próximamente)

Nota: Las herramientas que consumen mucho tiempo, como la generación de video, pueden no completarse debido a las limitaciones de tiempo de espera de Claude

  • Kit de herramientas básicas de imágenes
  • Kit de herramientas básicas de video
  • Generación de imágenes Flux a partir de texto/imagen
  • Generación de video Hunyuan a partir de texto/imagen
  • Generación de video Skyreels a partir de imagen
  • Generación de video Wan a partir de texto/imagen
  • Generación de música MMAudio a partir de video
  • Generación de voz Zero-Shot TTS
  • Generación de imágenes Midjourney
    • imagine
    • otros
  • Generación de video y efectos Kling
  • Generación de video Luma Dream Machine
  • Generación de música Suno
  • Generación de letras Suno
  • Generación de música y letras Udio
  • Generación de modelos 3D Trellis a partir de imagen
  • Planificación de flujos de trabajo dentro de LLMs

Ejemplo de trabajo con Claude Desktop

image

Requisitos previos

  • Node.js 16.x o superior
  • npm o yarn
  • Una clave de API de PiAPI (obtén una en piapi.ai)

Instalación

Instalación mediante Smithery

Para instalar PiAPI MCP Server para Claude Desktop automáticamente mediante Smithery:

npx -y @smithery/cli install piapi-mcp-server --client claude

Instalación manual

  1. Clona el repositorio:
git clone https://github.com/apinetwork/piapi-mcp-server
cd piapi-mcp-server
  1. Instala las dependencias:
npm install
  1. Compila el proyecto:
npm run build

Después de compilar, se generará un archivo dist/index.js. Luego puedes configurar este archivo con Claude Desktop y otras aplicaciones. Para instrucciones detalladas de configuración, consulta la sección de Uso.

  1. (Opcional) Prueba el servidor con MCP Inspector:

Primero, crea un archivo .env en el directorio raíz del proyecto con tu clave de API:

PIAPI_API_KEY=your_api_key_here

Luego ejecuta el siguiente comando para iniciar el MCP Inspector:

npm run inspect

Después de ejecutar el comando, MCP Inspector estará disponible en http://localhost:5173 (puerto predeterminado: 5173). Abre esta URL en tu navegador para comenzar a probar. El tiempo de espera predeterminado para las operaciones del inspector es de 10000 ms (10 segundos), que puede no ser suficiente para tareas de generación de imágenes. Se recomienda aumentar el tiempo de espera al probar la generación de imágenes u otras operaciones que consumen mucho tiempo. Puedes ajustar el tiempo de espera agregando un parámetro de tiempo de espera a la URL, por ejemplo: http://localhost:5173?timeout=60000 (establece el tiempo de espera en 60 segundos)

El MCP Inspector es una herramienta de desarrollo potente que te ayuda a probar y depurar la implementación de tu servidor MCP. Las características clave incluyen:

  • Pruebas interactivas: Prueba las funciones de tu servidor directamente a través de una interfaz web
  • Retroalimentación en tiempo real: Ve resultados inmediatos de tus llamadas a funciones y cualquier error que ocurra
  • Inspección de solicitudes/respuestas: Ve información detallada sobre solicitudes y respuestas
  • Documentación de funciones: Explora las funciones disponibles y sus parámetros
  • Parámetros personalizados: Establece valores de tiempo de espera personalizados y otras opciones de configuración
  • Seguimiento de historial: Realiza un seguimiento de tus llamadas a funciones anteriores y sus resultados

Para obtener información detallada sobre el uso de MCP Inspector y sus características, visita la documentación oficial de MCP.

Uso

Conexión con Claude Desktop

Agrega esto a tu archivo de configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json en macOS o %APPDATA%\Claude\claude_desktop_config.json en Windows):

{
  "mcpServers": {
    "piapi": {
      "command": "node",
      "args": ["/absolute/path/to/piapi-mcp-server/dist/index.js"],
      "env": {
        "PIAPI_API_KEY": "your_api_key_here"
      }
    }
  }
}

Después de actualizar tu archivo de configuración, debes reiniciar Claude para Desktop. Al reiniciar, deberías ver un ícono de martillo en la esquina inferior derecha del cuadro de entrada. Para obtener información más detallada, visita la documentación oficial de MCP

Conexión con Cursor

Nota: La siguiente guía se basa en Cursor 0.47.5. Las características y comportamientos pueden variar en diferentes versiones.

Para configurar el servidor MCP:

  1. Navega a: Archivo > Preferencias > Configuración de Cursor, o usa la tecla de acceso rápido Ctrl+Shift+J
  2. Selecciona la pestaña "MCP" en el panel izquierdo
  3. Haz clic en el botón "Agregar nuevo servidor MCP global" en la esquina superior derecha
  4. Agrega tu configuración en el archivo mcp.json que se abre
{
  "mcpServers": {
    "piapi": {
      "command": "node",
      "args": ["/absolute/path/to/piapi-mcp-server/dist/index.js"],
      "env": {
        "PIAPI_API_KEY": "your_api_key_here"
      }
    }
  }
}
  1. Después de la configuración, verás una entrada "piapi" en la página de Servidores MCP
  2. Haz clic en el botón Actualizar en la entrada o reinicia Cursor para conectarte al servidor piapi

Para probar la generación de imágenes de piapi:

  1. Abre y selecciona "Modo Agente" en el Chat de Cursor, o usa la tecla de acceso rápido Ctrl+I
  2. Ingresa un mensaje de prueba, por ejemplo: "genera una imagen de un perro"
  3. La imagen se generará según tu mensaje usando el servidor piapi

Para deshabilitar el servidor piapi:

  1. Navega a la página de Servidores MCP en la Configuración de Cursor
  2. Encuentra la entrada "piapi" en la lista de servidores
  3. Haz clic en el botón de alternancia "Habilitado" para cambiarlo a "Deshabilitado"

Mantener las herramientas sincronizadas con PiAPI (tarea de sincronización)

src/index.ts registra una herramienta MCP respaldada por contrato para cada capacidad de PiAPI (model, task_type) confirmada. Los nombres de las herramientas son deterministas: piapi_<model>_<task_type> (por ejemplo, piapi_qubico_flux1_schnell_txt2img), y sus esquemas de entrada se generan a partir del catálogo confirmado. Las herramientas de conveniencia escritas a mano existentes permanecen disponibles; las herramientas respaldadas por contrato aseguran que la superficie expuesta permanezca completa a medida que cambia el catálogo de Manager.

Las herramientas de conveniencia heredadas en src/index.ts permanecen escritas a mano, pero la superficie completa respaldada por contrato se genera a partir del catálogo confirmado. Este repositorio incluye un detector de desviación repetible que compara esa línea base del catálogo con el contrato de API versionado de PiAPI Manager. Detecta nuevas API, API obsoletas, cambios de parámetros y cambios de descripciones.

Fuente de verdad: el contrato Go API.postman_collection.json en el repositorio de GitHub de PiAPI Manager (Gocyber-world/midjourney-http-v2). La tarea obtiene ese contrato versionado directamente de GitHub y extrae los ejemplos de POST /api/v1/task en capacidades de (model, task_type). Si el repositorio de Manager es privado, establece el secreto de CI MCP_SYNC_GITHUB_TOKEN con contents: read de privilegio mínimo en ese repositorio fuente (y solo los permisos de escritura aprobados por separado necesarios para la automatización de actualización de MCP). No tiene dependencia de Apidog y deliberadamente no inspecciona ni informa precios.

Comandos

npm run build          # compile the MCP server and sync task
npm run test:sync      # offline sync-engine tests (no network or credentials)
npm run sync           # fetch contract and diff baseline; exit 0 = in sync, 2 = drift
npm run sync:snapshot  # print the normalized current contract catalog
npm run sync:report    # write the Markdown drift report to sync-report.md
npm run sync:accept    # after updating src/index.ts, refresh the baseline

Por defecto, npm run sync usa el contrato de GitHub de Manager. Para recuperación o desarrollo local, se puede proporcionar un archivo JSON de OpenAPI exportado en su lugar:

node dist/sync/cli.js diff --file ./piapi-openapi.json

Cuando se produce un informe de desviación, una nueva capacidad ya está representada por su herramienta MCP respaldada por contrato después de que se acepte la línea base. Valida el servidor MCP, ejecuta npm run sync:accept y confirma la línea base actualizada. Actualiza una herramienta de conveniencia escrita a mano solo cuando una experiencia de usuario específica del modelo curada sea útil.

Automatización

.github/workflows/sync-piapi.yml se conserva solo para despacho manual. La sincronización periódica se ejecuta desde el entorno de automatización local aprobado, que posee la credencial MCP aprobada por separado por el propietario y puede validar, aceptar y enviar actualizaciones del catálogo después de que pase su compuerta de información sensible.

Desarrollo

Estructura del proyecto

piapi-mcp-server/
├── assets/
├── src/
│   ├── index.ts        # Main server entry point
│   └── sync/           # PiAPI -> MCP sync task
│       ├── cli.ts          # CLI: snapshot / diff / accept / report-file
│       ├── fetchers.ts     # GitHub Postman contract + local-file sources
│       ├── normalize.ts    # OpenAPI -> (model, task_type) catalog
│       ├── diff.ts         # catalog diff + Markdown report
│       ├── catalog.ts      # baseline load/save
│       ├── mcp_tools.ts    # catalog -> contract-backed FastMCP tool schemas
│       ├── selftest.ts     # offline engine test (npm run test:sync)
│       ├── types.ts
│       └── baseline.piapi-catalog.json  # committed baseline
├── .github/workflows/sync-piapi.yml     # weekly drift check
├── package.json
├── tsconfig.json
└── .env.example

Licencia

MIT