El estudio OpenAPI local-first y nativo de IA

Desarrolla APIs en local.
Publica y conecta con la IA.

Haz que Codex, Claude Code y Cursor programen siguiendo tus definiciones de API. Con Powerduck en tu equipo, genera documentación a partir del código y coordina pruebas con IA. Aloja gratis tus documentos OpenAPI y servidores MCP en Hub.

commerce-api/openapi.yaml OpenAPI 3.1 · archivo local
Un contrato OpenAPI
/orders
  post  createOrder
  get   listOrders
/products
  get   listProducts
/customers
  get   listCustomers
Compilado en un servidor MCP ejecutable · 12 herramientas invocables
Tu agente de programación Cursor · Claude Code · Codex
powerduck · MCP server
powerduck.read_spec() 12 operaciones encontradas
powerduck.start_mock("POST /orders") Servidor mock activo en :4010
powerduck.generate_tests("POST /orders") orders.test.js generado
powerduck.call_api("POST /orders", {total:49}) 200 OK · verificado contra el contrato
powerduck.publish_docs() Documentación de referencia actualizada
Un archivo OpenAPI se compila en herramientas que tu agente llama: mocks, pruebas, llamadas a la API y documentación, todo verificado contra el mismo contrato.

El trabajo local no requiere cuenta. La IA remota usa el servicio de modelos que elijas; el alojamiento en línea requiere una cuenta Cloud.

Edición de especificaciones · Depuración de API · Pruebas · Servidores mock · Documentación de API · Servidores MCP

POWERDUCK HUB

Una sola especificación OpenAPI. Desarrolla en local y comparte en línea.

Valida tus APIs en la aplicación de escritorio. Comparte documentación en Hub y conecta herramientas de IA.

  1. 01

    Desarrollar y verificar

    Diseña, depura y prueba APIs con Powerduck.

  2. 02

    Publicar una especificación OpenAPI

    Convierte tu especificación en documentación alojada y un endpoint MCP.

  3. 03

    Compartir y conectar

    Comparte la documentación, conecta un cliente MCP y elige si quieres aparecer públicamente en Hub.

Alojamiento gratuito dentro de los límites del plan. Tu API sigue ejecutándose en tu propio backend.

Por qué Powerduck

Un archivo local sustituye el montón de herramientas API.

Un único YAML OpenAPI en tu repo impulsa diseño, depuración, pruebas, mocks, documentación y MCP, y tus agentes de código usan ese mismo archivo.

Un archivo para todas las funciones

Diseña, depura, prueba, simula, documenta y expone MCP desde la misma especificación OpenAPI, para que nada se desincronice.

Otros Archivos separados de colección, documentación, mocks y pruebas
Powerduck Un YAML impulsa todas las herramientas y tus agentes

Cada respuesta se verifica con el contrato

Cada respuesta se comprueba con la especificación OpenAPI, no solo se muestra, de modo que un tipo o ruta incorrectos se detectan al instante.

Otros Envía la solicitud y muestra la respuesta 200
Powerduck La desviación de la spec se marca en cuanto llega la respuesta

Local-first, sin cuenta, listo para agentes

Tus archivos permanecen en tu equipo y funcionan sin cuenta ni subida. Codex, Claude Code y Cursor leen la misma especificación que tú.

Otros Se requiere cuenta en la nube y subida para empezar
Powerduck Se ejecuta en local; tus agentes leen el mismo archivo
~/commerce-api/openapi.yaml OpenAPI 3.1.0 3 problemas sin guardar
142 /users/{id}:
143 get:
144 operationId: getUser
145 summary: Retrieve a user
146 tags: [Users]
147 parameters:
148 - $ref: '#/components/parameters/UserId'
149 responses:
150 '200':
151 description: The requested user
152 content:
153 application/json:
154 schema:
155 $ref: '#/components/schemas/User'
156 '404': # description is required
157 contents:
158 application/json:
159 schema:
160 $ref: '#/components/schemas/Erorr'
161 delete:
162 summary: Delete a user
Problemas 2 errores · 1 advertencia Validado con el dialecto 3.1
156:9 contents is not a valid Response Object key. Did you mean content? oas3-schema
160:24 Unresolved $ref — schemas/Erorr does not exist. ref-resolution
162:7 Operation has no operationId. It will be skipped when generating MCP tools. operation-operationId
Línea 156, columna 9 YAML UTF-8 Espacios: 2 3.1.0
Colecciones generadas desde openapi.yaml Importación de Postman Comprobación del contrato activa
GET ▾
{{baseUrl}}/users/{{userId}}?include=profile
Preproducción ▾
Parámetros1 Authbearer Cabeceras3 Cuerpo Scripts Ajustes
# GET has no requestBody in the specification — body disabled
# Path parameter id resolved from environment → userId = usr_8Kd2Xa
200 OK 148 ms 1.2 KB Contrato: 1 discrepancia
Cuerpo Cabeceras9 Cookies Contrato1 Cronología
{
  "id": "usr_8Kd2Xa",
  "email": "ada@example.com",
  "created": 1757030400,
  "profile": {
    "name": "Ada L.",
    "locale": "en-GB"
  },
  "scope": "users:read orders:read"
}
Contract mismatch — response differs from the specification scope is present in the response but is not declared on components/schemas/User. Add the property to the schema or remove it from the handler.
mcp://localhost:7433 en ejecución stdio + HTTP

Generado desde openapi.yaml

6 herramientas 7 recursos 1 degradado Se regenera al guardar

Every operation with an operationId becomes a tool. Arguments come from parameters and requestBody. Nothing is hand-written.

POST /auth/login → operationId → loginUser
loginUser

Exchange credentials for a bearer token.

email : string password : string
GET /users/{id} → operationId → getUser
getUser

Retrieve a single user by identifier.

id : string include? : string
POST /orders → operationId → createOrder
createOrder

Create an order for the authenticated customer.

items : array currency : string
POST /orders/{id}/refund → operationId → refundOrder
refundOrder

Refund an order in full or in part.

id : string amount? : integer
14:02:11 watch openapi.yaml changed (line 144)
14:02:11 build parsed 3.1.0 · 11 operations · 14 schemas
14:02:11 build 6 herramientas, 7 resources · 1 skipped (no operationId)
14:02:12 serve listening on stdio and http://localhost:7433
14:02:31 call getUser { id: "usr_8Kd2Xa" } → 200 in 148 ms
docs.example.dev/reference/users/get Exportación estática Sincronizado con la especificación

Retrieve a user

GET /v1/users/{id}

Returns the user object for a valid identifier. If the user has been deleted, an Error object is returned with status 404.

Parámetros de ruta
id string Obligatorio
The identifier of the user, prefixed with usr_.
Parámetros de consulta
include string
Expand a related object.

VÉALO EN UN FLUJO

Cada tarea familiar se convierte en un flujo basado en el contrato.

Elige una tarea a continuación. Powerduck la ejecuta desde el archivo OpenAPI en tu equipo — con entornos, pruebas y mocks, sin cuenta ni subida.

Elegir lo local no debería significar perder funciones.

Tu espacio de API local arranca sin cuenta ni subida de archivos. Conserva tus peticiones, autenticación, entornos y aserciones. Elige Cloud cuando quieras publicar en línea.

  • Importar cURL / Postman / OpenAPI
  • Autenticación y entornos
  • Scripts y aserciones
  • Colecciones y pruebas de escenarios
  • Servidores mock locales
  • Depuración de 7 protocolos

El trabajo local no requiere cuenta. La IA remota usa el servicio de modelos que elijas; el alojamiento en línea requiere una cuenta Cloud.

¿Todavía lees el código fuente para comprobar si la documentación de la API es correcta?

Genera documentación desde el proyecto.

Una definición revisable y un enlace local a la documentación.

Configuración y requisitos

¿Le has dado la especificación a la IA y aun así te devuelve otros campos y rutas?

Implementa según el contrato real de la API.

Una implementación guiada por el contrato y comprobada con respuestas reales.

Configuración y requisitos

¿Repites manualmente el mismo flujo de negocio tras cada cambio en la API?

Ejecuta el escenario de negocio completo.

Resultados por paso y aserciones fallidas, no solo un script de pruebas.

Configuración y requisitos

¿Cambias de herramienta solo porque el siguiente endpoint usa otro protocolo?

Examina siete protocolos en un solo lugar.

Control manual para entender exactamente qué ocurrió.

Configuración y requisitos

¿Vuelves a copiar peticiones, respuestas y contexto cada vez que pides ayuda a la IA?

Investiga con el contexto real de la petición.

Un diagnóstico basado en resultados reales y cambios que puedes revisar.

Configuración y requisitos

¿Mantienes un alojamiento aparte solo para compartir documentación de API y MCP?

Publica documentación y MCP desde una API.

URL de documentación y MCP sin mantener tu propia infraestructura de alojamiento.

Configuración y requisitos

EMPIEZA EN TU EQUIPO

Descarga. Recupera tu tiempo de trabajo.

Powerduck es un espacio de API de escritorio. Abre un archivo local, envía tu primera petición y conecta tu agente cuando lo necesites. Sin cuenta para empezar.

TU ESPACIO PRINCIPAL

Haz de él tu banco de trabajo para API.

Archivos locales, análisis de código y depuración de protocolos nativos, en el escritorio. Conecta el modelo de IA que elijas para ayudarte a diseñar, investigar o probar.

  1. 1 Descarga la app y prueba el ejemplo local — sin cuenta ni clave de modelo.
  2. 2 Abre tu archivo OpenAPI o escanea una base de código existente.
  3. 3 Conecta un agente de codificación, cambia el código y verifica el backend real según el contrato.
Descargar la aplicación

macOS 12+ · Windows 10+ · Linux

¿PRIMERO QUIERES ECHAR UN VISTAZO?

Una visita rápida desde el navegador.

La demo web usa un modelo compartido en la nube y requiere iniciar sesión. Para trabajar en local sin cuenta, descarga la aplicación de escritorio.

Abrir aplicación web

Verificación de contrato

Un error de contrato real y una corrección verificada

Los clientes API comunes envían la solicitud y muestran la respuesta. Powerduck además comprueba cada respuesta frente al contrato OpenAPI, para detectar cualquier desviación al momento.

Ver ejemplo práctico
~/commerce-api — response check OpenAPI 3.1
El contrato exige
total:
  type: number
El backend devuelve una cadena
{
  "total": "49.00"
}
/total debe ser number — la respuesta no cumple el contrato
Devolver un número
{
  "total": 49
}
La respuesta cumple el contrato

Editor de specs OpenAPI

Editor de specs OpenAPI

El esquema sigue la estructura real de la especificación, no una suposición basada en la sangría. Navega por rutas y componentes como un árbol y corrige los errores justo donde están.

  • Validación consciente del esquema. Valida según el dialecto 3.0, 3.1 o 3.2 que tu archivo declara realmente.
  • Navegación de $ref resuelta. Salta a las definiciones, inspecciona los usos y obtén sugerencias para referencias mal escritas.
  • Ediciones en el sitio. Tu repositorio sigue siendo la fuente de verdad.
  • Problemas con nombres de reglas. Los fallos de CI y los diagnósticos del editor usan el mismo vocabulario.
openapi.yaml 3 problemas
▾ info
▾ paths
 /users
 /users/{id}
 /orders
▾ components
 schemas
 responses
142 /users/{id}:
143 get:
144 operationId: getUser
145 responses:
156 contents:
160 $ref: Erorr
Problemas · 2 errores · 1 advertencia
156:9 contents is not a valid Response Object key
160:24 Unresolved $ref. Closest match: Error
Depuración de API Comprobación del contrato activa
▾ Users
 GET listUsers
 GET getUser
▾ Orders
 POST createOrder
GET {{baseUrl}}/users/{{userId}} Enviar
Parámetros Auth Cuerpo Cabeceras
{
  "id": "usr_8Kd2Xa",
  "email": "ada@example.com",
  "scope": "users:read"
}
Contract mismatch — "scope" is not declared on User.

Depuración de API

Depurar APIs según tu spec

Un constructor de solicitudes con la forma de las herramientas que los desarrolladores ya usan, además de lo que esas herramientas no pueden hacer por defecto: verificar las respuestas frente al contrato.

  • Colecciones generadas desde rutas y etiquetas. Sin paso de importación y nada que volver a sincronizar manualmente.
  • Comprobación del contrato en cada respuesta. Detecta en línea propiedades no declaradas, campos faltantes y desviaciones de tipo.
  • Entornos y variables. Reutiliza las configuraciones de desarrollo y staging existentes.
  • Seguridad desde securitySchemes. La configuración de Bearer, clave de API y OAuth empieza desde la especificación.

Generador de servidor MCP

Generar un servidor MCP desde OpenAPI

Tu especificación ya es un manifiesto de herramientas. Powerduck la compila en un servidor MCP ejecutable y muestra exactamente qué campos OpenAPI produjeron cada herramienta.

  • Procedencia visible. Cada herramienta se remonta a su operación, operationId y esquema.
  • Estados degradados y omitidos. Los metadatos faltantes son visibles en lugar de producir en silencio herramientas débiles.
  • Se regenera al guardar. Cambia la especificación y las herramientas se actualizan sin un paso de compilación.
  • Transportes locales. Ejecuta mediante stdio o HTTP para agentes y flujos locales.
mcp://localhost:7433 en ejecución
Generado desde openapi.yaml 6 herramientas 7 recursos
GET /users/{id} → operationId
getUser
id: string
POST /orders → operationId
createOrder
items: array
POST /auth/login
loginUser
email, password
DELETE /users/{id}
omitido
Falta operationId
14:02 build 6 tools, 7 resources
14:02 serve listening on :7433
14:03 call getUser → 200
Referencia de API Exportación estática
Users
Resumen
Retrieve a user
List users
Update user

Retrieve a user

GET /v1/users/{id}
Returns the user object for a valid identifier.
Parámetros de ruta
id · string · required
Devuelve
User · object
curl /users/{id}

{
  "id": "usr_...",
  "email": "ada@..."
}

Generador de documentación de API

Documentación de API desde el mismo contrato

Documentación de referencia generada directamente desde tu modelo OpenAPI, exportada como archivos estáticos y hospedada donde quieras.

  • Tablas de parámetros desde esquemas. Los indicadores obligatorios, enumeraciones y descripciones se mantienen sincronizados.
  • Ejemplos en varios idiomas. Genera ejemplos de cURL, Node, Python y Go desde las operaciones.
  • Respuestas desde el contrato real. Las respuestas de éxito y error provienen de los mismos objetos que valida tu depurador.
  • Exportación estática. Sin dependencia en tiempo de ejecución y sin dependencia de ninguna plataforma de documentación.

Una única fuente de verdad

Un archivo OpenAPI local.
Cada función, impulsada por IA.

Abre openapi.yaml o openapi.json en local y Powerduck convierte el contrato que ya posees en un espacio de trabajo de API completo. Sin importación. Sin conversión. Sin colecciones paralelas. Sin copia en la nube. Describe el resultado en lenguaje sencillo y el asistente integrado lo ejecuta mediante pasos revisables, y el mismo archivo habla MCP con cualquier agente de programación de IA.

ABRIR EN LOCAL
{ }
openapi.yaml
o openapi.json

El archivo permanece en tu repositorio.

01 Editor de especificaciones

Editar, navegar y validar el contrato real.

02 Depuración de API

Enviar solicitudes generadas desde las mismas operaciones.

03 Servidor MCP

Compilar operaciones en herramientas listas para agentes.

04 Documentación de API

Publicar documentación desde la misma fuente.

Powerduck

No es otro cliente de API,
no es otro visor de specs,
sino una forma nativa de IA de construir APIs.

Es el espacio de trabajo local e impulsado por IA construido en torno al propio archivo OpenAPI.

SIN NECESIDAD DE NUBETu spec nunca necesita salir de tu máquina.
SIN SINCRONIZACIÓN MANUALNo hay nada más que mantener alineado con el contrato.
SIN COPIAS ADICIONALESTu YAML o JSON existente es el espacio de trabajo.

Trabajo local, servicios remotos y tus decisiones

Los archivos locales no requieren cuenta. La IA remota recibe el contexto relevante en tu proveedor configurado. Al publicar en Cloud se sube el contenido seleccionado. Las estadísticas opcionales están desactivadas por defecto; consulta Privacidad.

Política de privacidad

No necesitas comprar Cloud para trabajar en local. El uso gratuito incluye dos espacios de especificación; los compartidos aprobados pueden añadir más. La licencia de escritorio elimina el límite. Tu proveedor factura tu propia clave; los créditos de IA alojada y Cloud se pagan aparte.

Elige tu siguiente paso.

Comparar productos y precios →

Preguntas frecuentes

Preguntas que los desarrolladores hacen primero

Los detalles prácticos sobre archivos locales, versiones de OpenAPI, generación de MCP y licencias.

¿Powerduck sube mi especificación OpenAPI a algún lugar?

Los archivos locales no requieren cuenta. La IA remota recibe el contexto relevante en tu proveedor configurado. Al publicar en Cloud se sube el contenido seleccionado. Las estadísticas opcionales están desactivadas por defecto; consulta Privacidad.

¿Qué versiones de OpenAPI son compatibles?

OpenAPI 3.0, 3.1 y 3.2. Powerduck detecta la versión declarada y valida según el dialecto correspondiente en lugar de usar el mínimo común denominador.

¿Cómo se genera el servidor MCP?

Las operaciones con un operationId se convierten en herramientas MCP. Los argumentos se derivan de los parámetros y los esquemas de requestBody. Los esquemas de componentes pueden exponerse como recursos. El servidor generado se actualiza cada vez que cambia la especificación.

¿La licencia de escritorio es una suscripción?

No. Powerduck Desktop es una licencia perpetua comprada una vez. Las actualizaciones dentro de la versión principal están incluidas. Las futuras actualizaciones mayores siguen siendo opcionales.

¿Puedo seguir usando colecciones de Postman?

Sí. Las colecciones y entornos existentes pueden seguir usándose. Powerduck trata la especificación OpenAPI como el contrato autoritativo y ayuda a identificar dónde las solicitudes se desvían de él.

¿Funciona en CI?

Sí. El mismo motor de validación y generación se expone a través de @powerduck/openapi-cli, una herramienta de línea de comandos lista para CI que se ejecuta durante los pull requests y los pipelines automatizados. Admite pruebas por lotes en 6 protocolos (HTTP, SSE, WebSocket, gRPC, MCP, GraphQL), concurrencia configurable e informes compatibles con JUnit para la integración de CI.

Explorar openapi-cli →