
Openapi Dynamic
io.github.mayorandrew由 GitHub 帳號 mayorandrew 發布v0.3.3更新於 Nov 3, 2026
Load OpenAPI 2.x/3.x specs and expose generic tools to discover and call multiple APIs.
概覽
載入 OpenAPI 2.x/3.x 規格,讓助理以通用工具瀏覽端點、檢視 schema、完成驗證並呼叫多個 API。
- 可以做什麼
- 列出已設定的 API,並搜尋或分頁瀏覽其端點
- 檢視端點的中繼資料、參數、回應與安全性要求,並依 JSON Pointer 讀取 schema 物件
- 預覽或實際執行端點請求,支援 dry run 與 JSONPath 欄位篩選
- 處理 API key、bearer、basic 與 OAuth2 驗證,包含裝置碼與 PKCE 互動流程
- 上傳 multipart 或原始二進位內容,並對受速率限制的請求進行重試
- 適用情境
- 當你有一份或多份 OpenAPI 或 Swagger 規格,想讓助理不必為每個服務撰寫串接程式碼就能探索並呼叫這些 API 時適用,包括需要 OAuth2 或已儲存權杖的 API。
- 執行需求
- 需要 Node.js 20 以上版本;透過 npx 在本機執行,並以 --config 指定 YAML 設定檔。每個 API 項目需提供本機 specPath 或遠端 specUrl。憑證來自依 API 與 scheme 名稱衍生的環境變數,或來自已儲存的驗證檔案。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Openapi Dynamic,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
openapi-dynamic-mcp
Connect AI clients to OpenAPI APIs quickly, with one MCP server, direct CLI access, and built-in auth support.
Table of Contents
- Overview
- Highlights
- Requirements
- Quick Start
- Configuration
- Client Setup
- CLI
- Authentication
- Environment Variables
- Working with Responses
- Files and Binary Data
- MCP Tools
- Development
- License
Overview
openapi-dynamic-mcp lets MCP clients and shell users work with OpenAPI APIs without writing custom glue code for each service. Point it at one or more OpenAPI specs, then list APIs, inspect endpoints, authenticate, and make requests through a consistent interface.
It is designed for common user workflows:
- Connect multiple APIs through one MCP server
- Use local specs or hosted
specUrldefinitions - Work with OpenAPI
3.0,3.1, and Swagger2.0 - Handle API key, bearer, basic, and OAuth2 auth
- Reuse stored tokens across sessions
- Filter large responses down to the fields you need
- Preview requests safely before sending them
Highlights
- Get from spec to usable tools fast: start from a YAML config and immediately browse endpoints or call them from MCP or the CLI.
- Authenticate the way your API expects: supports API keys, bearer/basic auth, and OAuth2 client credentials, password, device code, and auth code with PKCE.
- Avoid repeated sign-in work: store tokens once and reuse them later.
- Handle interactive OAuth cleanly: device-code and browser-based auth return instructions an agent can present to the user.
- Keep responses focused: project large outputs with JSONPath selectors.
- Inspect before you send: use dry runs to preview request shape without network I/O.
- Upload files when needed: supports multipart form uploads and raw binary bodies.
- Stay resilient against rate limits: configurable retries for
429 Too Many Requests.
Requirements
- Node.js
20+
Quick Start
Run the MCP server directly:
Minimal config:
You can also point at a remote spec:
Configuration
Add each API you want to use under apis. Each entry can point to a local spec file or a remote spec URL.
Common options:
name: the API name shown in MCP and CLI commandsspecPathorspecUrl: where to load the OpenAPI spec frombaseUrl: override the server URL from the specheaders: headers to send on every requesttimeoutMs: default request timeoutretry429: retry behavior for rate-limited APIsoauth2Schemes: per-scheme OAuth settings when the spec defines OAuth security
Per-Scheme OAuth2 Configuration
Use oauth2Schemes when an API defines one or more OAuth2 security schemes and you want to set token URLs, scopes, or interactive auth preferences for a specific scheme.
The scheme name must match the name in the OpenAPI spec. Common options are:
tokenUrlscopestokenEndpointAuthMethodauthMethoddeviceAuthorizationEndpointpkce
If you only need credentials, environment variables are often enough. Use oauth2Schemes when you want reusable config checked into the project.
Client Setup
Claude Desktop / Claude Code
Cursor
CLI
Server mode is available as either the root command or the explicit serve subcommand:
Use the CLI when you want the same API access outside your MCP client, for scripting, debugging, or auth setup.
Tool Commands
Every MCP tool is also available as a CLI subcommand that accepts one JSON object and emits JSON output:
Shared flags:
--input <json>: JSON object with command arguments--fields <jsonpath>: repeatable selector for filtering successful output--describe: print the command schema and help metadata--auth-file <path>: override the auth-store path
Auth Command
Use auth to pre-authenticate one configured security scheme and persist its token for later MCP or CLI calls:
For API key and bearer auth, --token provides the secret directly. For OAuth2, the command uses your configured credentials, completes the flow, and stores the result for later use.
Authentication
Supported authentication types:
- API key
- HTTP bearer
- HTTP basic
- OAuth2 client credentials
- OAuth2 password grant (ROPC)
- OAuth2 device code
- OAuth2 authorization code with PKCE
Typical auth flow:
- Provide credentials through environment variables or config
- Run
authonce if the scheme needs a stored token - Reuse that token from MCP or the CLI until it expires or changes
Auth Store
By default, tokens are stored beside your config file in:
You can override that path with either:
--auth-fileOPENAPI_DYNAMIC_MCP_AUTH_FILE
This makes repeated API use much smoother, especially for MCP clients that need to reconnect often.
Interactive OAuth2 Flows
When a request needs user interaction, the tool returns structured guidance that an MCP agent can relay to the user. Typical device-code output looks like:
This is especially useful for MCP agents because the auth step becomes a normal part of the user workflow instead of a dead-end error.
Environment Variables
Environment variables are useful for secrets, base URL overrides, and CI setups.
Names are derived from normalized API and scheme names:
- Uppercase
- Non-alphanumeric characters become
_ - Repeated
_are collapsed - Leading and trailing
_are removed
Examples:
pet-api->PET_APIOAuth2->OAUTH2
API-Level Variables
<API>_BASE_URL<API>_HEADERSas a JSON object stringOPENAPI_DYNAMIC_MCP_AUTH_FILE
API Key
<API>_<SCHEME>_API_KEY
HTTP Auth
<API>_<SCHEME>_TOKEN<API>_<SCHEME>_USERNAME<API>_<SCHEME>_PASSWORD
OAuth2
<API>_<SCHEME>_ACCESS_TOKEN<API>_<SCHEME>_CLIENT_ID<API>_<SCHEME>_CLIENT_SECRET<API>_<SCHEME>_TOKEN_URL<API>_<SCHEME>_SCOPESas a space-delimited list<API>_<SCHEME>_TOKEN_AUTH_METHODasclient_secret_basicorclient_secret_post<API>_<SCHEME>_USERNAME<API>_<SCHEME>_PASSWORD<API>_<SCHEME>_AUTH_METHODasdevice_codeorauthorization_code<API>_<SCHEME>_DEVICE_AUTHORIZATION_ENDPOINT<API>_<SCHEME>_REDIRECT_PORT<API>_<SCHEME>_PKCEastrueorfalse
Useful behaviors:
_ACCESS_TOKENbypasses OAuth grant flows entirely._AUTH_METHODforcesdevice_codeorauthorization_codewhen both are possible._USERNAMEand_PASSWORDare used for both HTTP basic auth and OAuth password grant, depending on the security scheme.
Working with Responses
JSONPath Filtering
CLI --fields and MCP fields: string[] let you keep only the parts of a successful response you care about. This is helpful when specs or payloads are too large to inspect comfortably.
Examples:
Selectors support quoted member escaping, array indexes, and wildcards.
Large Schema Warnings
get_api_schema adds a _sizeWarning advisory field when the response is very large, prompting you to narrow the JSON Pointer.
Dry Runs
make_endpoint_request supports dryRun: true so you can confirm the URL, headers, auth, and serialized body before sending a real request.
Files and Binary Data
make_endpoint_request supports both multipart/form-data and raw binary uploads.
Each file entry must provide exactly one content source: base64, text, or filePath.
Multipart example:
Raw binary example:
MCP Tools
These five tools cover the main user workflows:
Development
Useful commands:
License
MIT
來源:README.md,提交 96541ce
工具
0版本歷史
1- v0.3.3最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分