로컬 중심의 AI 네이티브 OpenAPI 스튜디오

로컬 개발부터 문서와 AI 연결까지,
하나의 API로.

Codex, Claude Code, Cursor가 API 정의에 맞춰 코드를 작성하도록 하세요. 로컬 작업을 우선하는 Powerduck 데스크톱 앱에서 코드로 문서를 생성하고 AI로 테스트를 구성하세요. OpenAPI 문서와 MCP 서버는 Hub에서 무료로 호스팅할 수 있습니다.

commerce-api/openapi.yaml OpenAPI 3.1 · 로컬 파일
하나의 OpenAPI 계약
/orders
  post  createOrder
  get   listOrders
/products
  get   listProducts
/customers
  get   listCustomers
실행 가능한 MCP 서버로 변환 · 호출 가능한 도구 12개
나의 코딩 에이전트 Cursor · Claude Code · Codex
powerduck · MCP server
powerduck.read_spec() 작업 12개 발견
powerduck.start_mock("POST /orders") 포트 4010에서 목 서버 실행 중
powerduck.generate_tests("POST /orders") orders.test.js 작성 완료
powerduck.call_api("POST /orders", {total:49}) 200 OK · 계약 검증 완료
powerduck.publish_docs() 레퍼런스 문서 갱신 완료
하나의 OpenAPI 파일을 에이전트가 호출하는 도구로 변환합니다. 목 서버, 테스트, API 호출, 문서를 모두 같은 계약으로 검증합니다.

로컬 작업에는 계정이 필요하지 않습니다. 원격 AI는 선택한 모델 서비스를 사용하며, 온라인 호스팅에는 Cloud 계정이 필요합니다.

명세 편집기 · API 디버깅 · 테스트 · 목 서버 · API 문서 · MCP 서버

POWERDUCK HUB

하나의 OpenAPI 명세. 로컬에서 개발하고 온라인으로 공유하세요.

데스크톱 앱에서 API 작업을 이어가세요. Hub에서는 문서를 공유하고 AI 도구를 API에 연결할 수 있습니다.

  1. 01

    구현하고 검증

    Powerduck에서 API를 설계하고 디버깅하고 테스트하세요.

  2. 02

    OpenAPI에서 바로 게시

    명세를 호스팅된 문서와 MCP 엔드포인트로 변환하세요.

  3. 03

    공유하고 연결

    문서 링크를 공유하고 MCP 클라이언트를 연결하세요. 프로젝트를 공개 목록에 표시할지도 선택할 수 있습니다.

요금제 한도 내에서 무료로 호스팅합니다. 실제 비즈니스 API는 기존 백엔드에서 계속 실행됩니다.

Powerduck을 선택하는 이유

여러 API 도구 대신 하나의 로컬 파일로.

저장소의 OpenAPI YAML 하나로 설계, 디버깅, 테스트, 목 서버, 문서, MCP를 사용하세요. 코딩 에이전트도 같은 파일을 사용합니다.

하나의 파일로 모든 기능 연결

같은 OpenAPI 명세로 설계, 디버깅, 테스트, 목 서버, 문서화, MCP 제공까지 처리해 서로 어긋나지 않게 합니다.

다른 방식 컬렉션, 문서, 목 서버, 테스트 파일을 따로 관리
Powerduck YAML 하나로 모든 도구와 에이전트 연결

모든 응답을 계약으로 검증

응답을 보여주는 데 그치지 않고 OpenAPI 명세와 비교해 잘못된 타입이나 경로를 즉시 찾아냅니다.

다른 방식 요청을 보내고 200 응답을 표시
Powerduck 응답이 돌아오는 즉시 명세 불일치 표시

로컬 중심, 계정 없이, 에이전트와 함께

파일은 내 컴퓨터에 두고 계정이나 업로드 없이 작업하세요. Codex, Claude Code, Cursor도 같은 명세를 읽습니다.

다른 방식 시작하기 전에 클라우드 계정과 업로드 필요
Powerduck 로컬에서 실행하고 에이전트도 같은 파일 사용
~/commerce-api/openapi.yaml OpenAPI 3.1.0 문제 3개 저장 안 됨
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
문제 오류 2개 · 경고 1개 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
156행, 9열 YAML UTF-8 공백: 2 3.1.0
openapi.yaml에서 생성한 컬렉션 Postman 가져오기 계약 검사 켜짐
GET ▾
{{baseUrl}}/users/{{userId}}?include=profile
스테이징 ▾
매개변수1 인증bearer 헤더3 본문 스크립트 설정
# 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 계약: 불일치 1개
본문 헤더9 쿠키 계약1 타임라인
{
  "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 실행 중 stdio + HTTP

openapi.yaml에서 생성됨

도구 6개 리소스 7개 성능 저하 1개 저장 시 다시 생성

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개, 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 정적 내보내기 명세와 동기화됨

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.

경로 매개변수
id string 필수
The identifier of the user, prefixed with usr_.
쿼리 매개변수
include string
Expand a related object.

실제 작업에서 살펴보기

반복하던 작업을 계약 중심의 흐름으로 바꾸세요.

아래에서 작업을 선택하세요. Powerduck은 내 컴퓨터의 OpenAPI 파일을 기준으로 환경, 테스트, 목 서버까지 실행합니다. 계정이나 업로드는 필요하지 않습니다.

로컬에서도 온전한 작업 공간을.

계정이나 업로드 없이 로컬 API 작업을 시작하세요. 요청, 인증, 환경, 어서션을 함께 사용할 수 있습니다. 온라인에 게시하고 싶을 때 Cloud를 선택하면 됩니다.

  • cURL / Postman / OpenAPI 가져오기
  • 인증 및 환경
  • 스크립트 및 어서션
  • 컬렉션 및 시나리오 테스트
  • 로컬 목 서버
  • 7개 프로토콜 디버깅

로컬 작업에는 계정이 필요하지 않습니다. 원격 AI는 선택한 모델 서비스를 사용하며, 온라인 호스팅에는 Cloud 계정이 필요합니다.

API 문서가 맞는지 확인하려고 아직도 소스 코드를 읽고 계신가요?

프로젝트에서 문서를 생성하세요.

검토 가능한 API 정의와 로컬 문서 링크.

설정 및 요구 사항 보기

AI에 명세를 줬는데 다른 필드와 경로로 구현한 적이 있나요?

실제 API 계약을 기준으로 구현하세요.

계약에 따라 구현하고 실제 응답으로 확인한 결과.

설정 및 요구 사항 보기

API가 바뀔 때마다 같은 업무 흐름을 수동으로 반복하시나요?

업무 시나리오 전체를 실행하세요.

테스트 스크립트 생성에 그치지 않고 단계별 결과와 실패한 어서션까지 확인.

설정 및 요구 사항 보기

다음 엔드포인트의 프로토콜이 다르다는 이유로 도구를 바꾸시나요?

7개 프로토콜을 한곳에서 살펴보세요.

정확히 무슨 일이 있었는지 직접 살펴볼 수 있는 수동 제어.

설정 및 요구 사항 보기

AI의 도움이 필요할 때마다 요청과 응답을 채팅에 복사하시나요?

실제 요청 컨텍스트로 원인을 조사하세요.

실제 요청 결과에 근거한 진단과 검토 가능한 변경 사항.

설정 및 요구 사항 보기

API 문서와 MCP를 공유하려고 별도 호스팅 환경을 관리하시나요?

하나의 API에서 문서와 MCP를 게시하세요.

호스팅 인프라를 직접 운영하지 않고도 문서와 MCP URL 제공.

설정 및 요구 사항 보기

내 컴퓨터에서 시작

다운로드하고, 내 환경에서 작업하세요.

Powerduck은 데스크톱 API 작업 공간입니다. 로컬 파일을 열어 첫 요청을 보내고, 준비되면 코딩 에이전트를 연결하세요. 계정 없이 시작할 수 있습니다.

기본 작업 공간

나만의 API 작업대를 마련하세요.

로컬 파일, 코드 스캔, 네이티브 프로토콜 디버깅을 한곳에서 사용하세요. 설계, 조사, 테스트에 도움이 필요할 때 원하는 AI 모델을 연결하면 됩니다.

  1. 1 앱을 다운로드하고 로컬 예제를 실행하세요. 계정이나 모델 키가 필요하지 않습니다.
  2. 2 OpenAPI 파일을 열거나 기존 코드베이스를 스캔하세요.
  3. 3 코딩 에이전트를 연결해 코드를 변경하고, 실제 백엔드가 계약을 따르는지 검증하세요.
데스크톱 앱 다운로드

macOS 12 이상 · Windows 10 이상 · Linux

먼저 둘러보고 싶으신가요?

브라우저에서 간단히 체험하세요.

웹 데모는 공유 클라우드 모델을 사용하므로 로그인이 필요합니다. 계정 없이 로컬에서 작업하려면 데스크톱 앱을 다운로드하세요.

웹 앱 열기

계약 검증

실제 계약 오류를 찾고, 수정 결과까지 검증

일반적인 API 클라이언트는 요청을 보내고 응답을 보여줍니다. Powerduck은 모든 응답을 OpenAPI 계약과 비교해, 명세와 달라진 부분을 바로 찾아냅니다.

실행 가능한 예제 보기
~/commerce-api — response check OpenAPI 3.1
계약의 요구 사항
total:
  type: number
백엔드가 문자열을 반환
{
  "total": "49.00"
}
/total은 숫자여야 합니다 — 응답이 계약을 위반했습니다
숫자를 반환하도록 수정
{
  "total": 49
}
응답이 계약과 일치합니다

OpenAPI 명세 편집기

OpenAPI 명세 편집기

개요는 들여쓰기를 추측하지 않고 명세의 실제 구조를 따릅니다. 경로와 컴포넌트를 트리로 탐색하고 문제가 있는 위치에서 바로 수정하세요.

  • 스키마 기반 검증 파일에 선언된 3.0, 3.1 또는 3.2 규격에 맞춰 검증합니다.
  • $ref 참조 탐색 정의로 이동하고 사용 위치를 확인하며, 잘못 입력한 참조의 수정 제안도 받으세요.
  • 원본 파일에서 바로 편집 저장소의 파일이 언제나 기준입니다.
  • 규칙 이름이 표시되는 진단 CI 오류와 편집기 진단이 같은 용어를 사용합니다.
openapi.yaml 문제 3개
▾ info
▾ paths
 /users
 /users/{id}
 /orders
▾ components
 schemas
 responses
142 /users/{id}:
143 get:
144 operationId: getUser
145 responses:
156 contents:
160 $ref: Erorr
문제 · 오류 2개 · 경고 1개
156:9 contents is not a valid Response Object key
160:24 Unresolved $ref. Closest match: Error
API 디버깅 계약 검사 켜짐
▾ Users
 GET listUsers
 GET getUser
▾ Orders
 POST createOrder
GET {{baseUrl}}/users/{{userId}} 전송
매개변수 인증 본문 헤더
{
  "id": "usr_8Kd2Xa",
  "email": "ada@example.com",
  "scope": "users:read"
}
Contract mismatch — "scope" is not declared on User.

API 디버깅

명세를 기준으로 API 디버깅

개발자에게 익숙한 요청 작성 도구에 계약 기반 응답 검증을 더했습니다.

  • 경로와 태그로 컬렉션 자동 구성 별도로 가져오거나 수동으로 다시 동기화할 필요가 없습니다.
  • 모든 응답의 계약 검사 선언되지 않은 속성, 누락된 필드, 타입 불일치를 응답에서 바로 확인하세요.
  • 환경과 변수 기존 개발 및 스테이징 설정을 재사용하세요.
  • securitySchemes 기반 인증 설정 명세를 바탕으로 Bearer, API 키, OAuth 인증을 설정합니다.

MCP 서버 생성기

OpenAPI로 MCP 서버 생성

명세에는 이미 도구를 정의할 정보가 담겨 있습니다. Powerduck은 이를 실행 가능한 MCP 서버로 변환하고, 각 도구가 어떤 OpenAPI 필드에서 만들어졌는지 보여줍니다.

  • 명확한 출처 모든 도구에서 원본 작업, operationId, 스키마를 추적할 수 있습니다.
  • 제한되거나 건너뛴 항목 표시 메타데이터가 부족하면 불완전한 도구를 조용히 생성하는 대신 부족한 내용을 표시합니다.
  • 저장 시 다시 생성 명세를 변경하면 별도 빌드 없이 도구가 갱신됩니다.
  • 로컬 전송 방식 로컬 에이전트와 워크플로에서 stdio 또는 HTTP로 실행하세요.
mcp://localhost:7433 실행 중
openapi.yaml에서 생성됨 도구 6개 리소스 7개
GET /users/{id} → operationId
getUser
id: string
POST /orders → operationId
createOrder
items: array
POST /auth/login
loginUser
email, password
DELETE /users/{id}
건너뜀
operationId 없음
14:02 build 6 tools, 7 resources
14:02 serve listening on :7433
14:03 call getUser → 200
API 레퍼런스 정적 내보내기
Users
개요
Retrieve a user
List users
Update user

Retrieve a user

GET /v1/users/{id}
Returns the user object for a valid identifier.
경로 매개변수
id · string · required
반환값
User · object
curl /users/{id}

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

API 문서 생성기

하나의 계약에서 API 문서까지

OpenAPI 모델에서 레퍼런스 문서를 직접 생성하세요. 정적 파일로 내보내 원하는 곳에 호스팅할 수 있습니다.

  • 스키마에서 생성하는 매개변수 표 필수 여부, 열거형 값, 설명이 명세와 일치합니다.
  • 여러 언어의 코드 예제 각 작업에서 cURL, Node, Python, Go 예제를 생성하세요.
  • 실제 계약에 기반한 응답 성공 및 오류 응답은 디버거가 검증하는 것과 동일한 객체에서 생성됩니다.
  • 정적 파일로 내보내기 런타임 의존성이 없으며 특정 문서 플랫폼에 종속되지 않습니다.

하나의 기준

하나의 로컬 OpenAPI 파일.
모든 기능을 AI와 함께.

로컬의 openapi.yaml 또는 openapi.json을 열면, 기존 계약이 완전한 API 작업 공간이 됩니다. 가져오기나 변환, 별도 컬렉션, 클라우드 복사본이 필요하지 않습니다. 원하는 결과를 자연어로 설명하면 내장 어시스턴트가 검토 가능한 단계로 실행합니다. 같은 파일을 MCP를 통해 AI 코딩 에이전트와 연결할 수도 있습니다.

로컬에서 열기
{ }
openapi.yaml
또는 openapi.json

파일은 저장소에 그대로 유지됩니다.

01 명세 편집기

실제 계약을 편집하고 탐색하고 검증하세요.

02 API 디버거

같은 작업 정의에서 생성한 요청을 보내세요.

03 MCP 서버

작업을 에이전트가 사용할 도구로 변환하세요.

04 API 문서

같은 원본으로 문서를 게시하세요.

Powerduck

API 클라이언트와 명세 뷰어를 넘어.
AI와 함께 API를 개발하는
하나의 작업 공간.

OpenAPI 파일을 중심으로 AI와 함께 작업하는 로컬 작업 공간입니다.

클라우드 없이 시작로컬 작업을 위해 명세를 업로드할 필요가 없습니다.
수동 동기화 불필요계약과 별도로 동기화할 자료가 없습니다.
추가 복사본 불필요기존 YAML 또는 JSON이 곧 작업 공간입니다.

로컬 작업, 원격 서비스, 그리고 사용자의 선택

로컬 파일 사용에는 계정이 필요하지 않습니다. 원격 AI를 사용하면 관련 컨텍스트가 설정한 공급자에게 전송됩니다. Cloud에 게시할 때는 선택한 콘텐츠가 업로드됩니다. 선택적 사용 통계는 기본적으로 꺼져 있습니다. 수집 항목과 설정 방법은 개인정보 처리방침을 확인하세요.

개인정보 처리방침

로컬 사용에는 Cloud 구매가 필요하지 않습니다. 무료로 명세 두 개를 사용할 수 있으며, 승인된 공유 보상으로 한도를 늘릴 수 있습니다. 데스크톱 라이선스를 구매하면 명세 개수 제한이 사라집니다. 본인 모델 키의 사용료는 해당 공급자가 청구합니다. 호스팅 모델 크레딧과 Cloud 호스팅 요금은 별도입니다.

다음 단계를 선택하세요.

제품과 요금제 비교 →

자주 묻는 질문

개발자가 먼저 궁금해하는 것들

로컬 파일, OpenAPI 버전, MCP 생성, 라이선스에 관한 안내입니다.

Powerduck이 제 OpenAPI 명세를 업로드하나요?

로컬 파일 사용에는 계정이 필요하지 않습니다. 원격 AI를 사용하면 관련 컨텍스트가 설정한 공급자에게 전송됩니다. Cloud에 게시할 때는 선택한 콘텐츠가 업로드됩니다. 선택적 사용 통계는 기본적으로 꺼져 있습니다. 수집 항목과 설정 방법은 개인정보 처리방침을 확인하세요.

어떤 OpenAPI 버전을 지원하나요?

OpenAPI 3.0, 3.1, 3.2를 지원합니다. 공통 기능만으로 검증하지 않고 파일에 선언된 버전을 감지해 해당 규격으로 검증합니다.

MCP 서버는 어떻게 생성되나요?

operationId가 있는 작업이 MCP 도구가 됩니다. 매개변수와 requestBody 스키마에서 인수를 생성합니다. 컴포넌트 스키마를 리소스로 제공할 수도 있습니다. 명세가 변경될 때마다 생성된 서버가 갱신됩니다.

데스크톱 라이선스는 구독 방식인가요?

아닙니다. Powerduck Desktop은 한 번 구매하는 영구 라이선스입니다. 동일한 메이저 버전의 업데이트가 포함되며, 이후 메이저 버전 업그레이드는 선택 사항입니다.

기존 Postman 컬렉션을 계속 사용할 수 있나요?

네. 기존 컬렉션과 환경을 계속 사용할 수 있습니다. Powerduck은 OpenAPI 명세를 기준 계약으로 삼고 요청이 계약과 다른 부분을 찾아줍니다.

CI에서도 사용할 수 있나요?

네. 동일한 검증 및 생성 엔진을 제공하는 @powerduck/openapi-cli 명령줄 도구를 풀 리퀘스트와 자동화 파이프라인에서 실행할 수 있습니다. 6개 프로토콜(HTTP, SSE, WebSocket, gRPC, MCP, GraphQL)의 일괄 테스트, 동시 실행 수 설정, CI 연동용 JUnit 호환 보고서를 지원합니다.

openapi-cli 살펴보기 →