優先在本機運作、整合 AI 的 OpenAPI 工作室

從本機 API 開發,
到文件發佈與 AI 連接。

讓 Codex、Claude Code、Cursor 依照 API 定義撰寫程式。在以本機為優先的 Powerduck 桌面應用程式中,掃描程式碼產生文件、用 AI 規劃測試,再透過 Hub 免費託管 OpenAPI 文件與 MCP 伺服器。

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 個API
powerduck.start_mock("POST /orders") Mock 服務已啟動 :4010
powerduck.generate_tests("POST /orders") 已生成 orders.test.js
powerduck.call_api("POST /orders", {total:49}) 200 OK · 已通過契約驗證
powerduck.publish_docs() 參考文件已更新
一份 OpenAPI 檔案可編譯為代理能呼叫的工具,包括 Mock、測試、API 呼叫與文件,全部依照同一份契約驗證。

本機工作無需帳號;遠端 AI 使用你選擇的模型服務,線上託管需要 Cloud 帳號。

規格編輯器  ·  API 偵錯  ·  測試  ·  Mock  ·  API 文件  ·  MCP 服務

POWERDUCK HUB

一份 OpenAPI 規格,貫穿本機開發與線上分享。

在用戶端完成 API 開發與驗證,透過 Hub 分享文件,讓 AI 工具連接你的 API。

  1. 01

    開發與驗證

    在 Powerduck 中設計、偵錯和測試 API。

  2. 02

    從 OpenAPI 發佈

    將規格發佈為線上 API 文件和可連接的 MCP 服務。

  3. 03

    分享與連接

    分享文件連結、連接 MCP 用戶端,自主選擇是否在 Hub 公開展示。

免費託管受方案額度限制;業務 API 仍由你自己的後端提供。

為什麼選擇 Powerduck

一個本機檔案,取代整套 API 工具。

儲存庫裡的一份 OpenAPI YAML 即可驅動設計、偵錯、測試、mock、文件與 MCP——你的程式開發助手也使用同一份檔案。

一份檔案,貫穿所有環節

用同一份 OpenAPI 規格完成設計、偵錯、測試、mock、文件與 MCP 發佈,任何環節都不會脫節。

其他工具 集合、文件、mock、測試檔案各自維護
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 Cookie 契約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 檔案執行——環境、測試與 mock 一應俱全,無需帳號或上傳。

選擇本機,不該意味著功能縮水。

本機 API 工作台,無需帳號,也不用先上傳檔案。請求、驗證身分、環境、斷言,熟悉的工作照常做。需要線上發佈時,再選擇 Cloud。

  • 匯入 cURL / Postman / OpenAPI
  • 驗證方式與環境變數
  • 指令碼與斷言
  • 請求集合與場景測試
  • 本機 Mock 服務
  • 七種通訊協定偵錯

本機工作無需帳號;遠端 AI 使用你選擇的模型服務,線上託管需要 Cloud 帳號。

拿到 API 文件後,你還需要翻閱原始碼,才能確認內容是否正確嗎?

從專案生成API文件。

一份可審閱的API定義,以及能開啟的本機文件連結。

查看設定與使用條件

你是否把文件給了 AI,生成的欄位和路徑卻仍然對不上?

讓程式開發助手讀取真實API定義。

程式碼有定義可依,結果有真實回應可驗。

查看設定與使用條件

你是否每改一次API,就得手動重跑一遍相同的業務流程?

讓 AI 編排並執行整個業務場景。

每一步的執行結果和失敗斷言,不是只給你一段測試程式碼。

查看設定與使用條件

你是否只是換了一種API通訊協定,就不得不換一個偵錯工具?

七種通訊協定,在一個工作台排查。

需要親自排查時,每一次請求和回傳都看得清。

查看設定與使用條件

你是否每次讓 AI 排錯,都得重新複製請求、回應和API背景?

帶著真實請求上下文,讓 AI 排錯。

基於真實請求結果的排查,而不是憑空猜原因。

查看設定與使用條件

你是否只是想分享文件和 MCP,卻還要單獨搭建、維護託管服務?

一份 API,發佈文件與 MCP。

文件位址 + MCP 服務位址,不用自己搭建託管環境。

查看設定與使用條件

從你自己的電腦開始

下載後,開始處理你的 API 工作。

Powerduck 是桌面上的 API 工作區。開啟本機檔案,送出第一個請求,再視需要連接程式開發助理。不必先註冊帳號。

日常工作的主力

打造你的 API 工作區。

本機檔案、程式碼掃描、原生通訊協定偵錯,都在桌面版。需要幫手時,接入你選擇的 AI 模型,協助設計、排錯和測試。

  1. 1 下載應用程式並體驗本機範例,不需要帳號或模型 API 金鑰。
  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 必須是 number —— 回應不符合契約
回傳數字
{
  "total": 49
}
回應符合契約

OpenAPI 規格編輯器

OpenAPI 規格編輯器

大綱根據規格的實際結構產生,不靠縮排推測。以樹狀結構瀏覽路徑和元件,直接在問題所在處修正。

  • 基於 Schema 的驗證。 依照檔案宣告的 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 Key 和 OAuth 設定都從規格開始。

MCP 伺服器生成器

從 OpenAPI 生成 MCP 伺服器

你的規格本身就是一份工具清單。Powerduck 把它編譯成可執行的 MCP 伺服器,並清楚展示每個工具來自哪些 OpenAPI 欄位。

  • 來源可見。 每個工具都能追溯到它的 operation、operationId 和 schema。
  • 清楚標示功能受限與略過的狀態。 缺失的中繼資料會明確顯示,而不是悄悄生成能力薄弱的工具。
  • 儲存後立即重新產生。 修改規格後,工具會隨之更新,不需要額外的建置步驟。
  • 本機傳輸方式。 透過 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 模型生成,匯出為靜態檔案,想部署到哪裡都可以。

  • 從 schema 生成參數表。 必填標記、列舉和描述始終保持同步。
  • 多語言範例。 從 operation 生成 cURL、Node、Python 和 Go 範例。
  • 回應來自真實契約。 成功和錯誤回應與偵錯器驗證的是同一批物件。
  • 靜態匯出。 無執行時依賴,也不被任何文件平台鎖定。

唯一事實來源

本機一個 OpenAPI 檔案,
所有能力,皆由 AI 驅動。

在本機開啟 openapi.yaml 或 openapi.json,Powerduck 就能將現有契約轉成完整的 API 工作區。不必匯入、轉換或另行維護集合,也不會建立雲端副本。用自然語言描述目標,內建助理便會提出可供審閱的步驟;同一份檔案也能透過 MCP 提供給其他 AI 程式開發代理使用。

在本機開啟
{ }
openapi.yaml
或 openapi.json

檔案始終留在你的儲存庫裡。

01 規格編輯器

編輯、瀏覽並驗證真實契約。

02 API 偵錯

傳送由同一批 operation 生成的請求。

03 MCP 伺服器

把 operation 編譯成面向助手的工具。

04 API 文件

從同一來源發佈文件。

Powerduck

不是又一個 API 用戶端,
不是又一個規格查看器,
而是一種 AI 原生的 API 建置方式。

這是圍繞 OpenAPI 檔案本身打造的本機原生、AI 驅動工作台。

不需要雲端你的規格根本不需要離開你的機器。
不必手動同步再沒有別的東西需要和契約保持同步。
不必另建副本你現有的 YAML 或 JSON 就是工作台。

本機工作、遠端服務與你的選擇

本機檔案讀寫不需要帳號。遠端 AI 會將相關內容傳送至你設定的模型服務;主動發布至 Cloud 時才會上傳所選內容。選用的使用統計預設關閉,收集欄位與控制方式請參閱隱私權政策。

隱私權政策

本機功能不需要購買 Cloud。免費方案可使用兩份規格;分享獎勵經審核通過後可增加名額。桌面授權可解除名額限制。使用自備 API 金鑰時,模型費用由服務供應商收取;託管模型額度與 Cloud 託管另行計費。

按你的需要,選擇下一步

對比產品與價格 →

常見問題

開發者最先問的問題

關於本機檔案、OpenAPI 版本、MCP 生成與授權的實用細節。

Powerduck 會把我的 OpenAPI 規格上傳到任何地方嗎?

本機檔案讀寫不需要帳號。遠端 AI 會將相關內容傳送至你設定的模型服務;主動發布至 Cloud 時才會上傳所選內容。選用的使用統計預設關閉,收集欄位與控制方式請參閱隱私權政策。

支援哪些 OpenAPI 版本?

支援 OpenAPI 3.0、3.1 和 3.2。Powerduck 會偵測宣告的版本,依照對應方言驗證,而非將所有版本限制在共通功能範圍內。

MCP 伺服器是怎麼生成的?

帶有 operationId 的操作會轉成 MCP 工具,參數則由 parameters 與 requestBody 的結構描述推導而來。元件的結構描述可公開為資源。規格變更時,產生的伺服器也會更新。

桌面授權是訂閱制嗎?

不是。Powerduck 桌面版採一次購買、永久授權,同一主要版本的更新均包含在內。未來是否升級至新的主要版本,由你自行決定。

我還能繼續用 Postman 集合嗎?

可以。已有的集合和環境都能繼續使用。Powerduck 把 OpenAPI 規格當作權威契約,並幫你找出請求與契約的偏差。

能用在 CI 裡嗎?

可以。同一套驗證和生成引擎透過 @powerduck/openapi-cli 提供。這套命令列工具可在 Pull Request 與 CI 自動化管線中執行,支援六種通訊協定(HTTP、SSE、WebSocket、gRPC、MCP、GraphQL)的批次測試、可設定的並行數,以及相容 JUnit 的報告。

瞭解 openapi-cli →