Token导航 LogoToken导航

MCP Server · 开发工具

Openapi Dynamic MCP

一个快速连接AI客户端与OpenAPI接口的服务,提供统一的MCP服务器、CLI访问和内置认证支持。

stdio官方级别未说明来源级核验工具 5openapi-dynamic-mcp@latest
API集成命令行工具TypeScriptJavaScript

快速开始

作者 / 组织
mayorandrew
提供方
mayorandrew
运行时
Node.js

工具数量

5

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Openapi Dynamic MCP 属于开发工具类 MCP Server,公开资料标注 5 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

开发工具

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

npx -y openapi-dynamic-mcp@latest --config ./config.yaml

客户端配置示例

{
  "mcpServers": {
    "openapi-dynamic-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "openapi-dynamic-mcp@latest",
        "--config",
        "./config.yaml"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 5 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

openapi-dynamic-mcp

Connect AI clients to OpenAPI APIs quickly, with one MCP server, direct CLI access, and built-in auth support.

目录

概述

openapi-dynamic-mcp 允许MCP客户端和shell用户使用OpenAPI API,而无需为每个服务编写自定义粘合代码。将其指向一个或多个OpenAPI规范,然后列出API,检查端点,进行身份验证,并通过一致的接口发出请求。

它专为常见的用户工作流程而设计:

  • 通过一个MCP服务器连接多个API
  • 使用本地规范或托管 specUrl 定义
  • 使用OpenAPI 3.0, 3.1和斯瓦格 2.0
  • 处理API密钥、承载、基本和OAuth2身份验证
  • 跨会话重用存储的令牌
  • 将大型响应筛选到所需的字段
  • 在发送请求之前安全预览请求

亮点

  • 快速从规范到可用工具:从YAML配置开始,立即浏览端点或从MCP或CLI调用端点。
  • 按照API期望的方式进行身份验证:使用PKCE支持API密钥、承载/基本身份验证和OAuth2客户端凭据、密码、设备代码和身份验证代码。
  • 避免重复登录工作:存储令牌一次,以后再使用。
  • 干净地处理交互式OAuth:设备代码和基于浏览器的身份验证返回代理可以呈现给用户的指令。
  • 保持反应集中:使用JSONPath选择器投影大型输出。
  • 发送前检查:使用模拟运行预览请求形状,无需网络I/O。
  • 需要时上传文件:支持多部分表单上传和原始二进制体。
  • 保持对利率限制的弹性:可配置的重试次数 429 Too Many Requests.

需求

  • Node.js 20+

快速开始

直接运行MCP服务器:

npx -y openapi-dynamic-mcp@latest --config ./config.yaml

最小配置:

version: 1
apis:
  - name: pet-api
    specPath: ./pet-api.yaml

您还可以指向远程规范:

version: 1
apis:
  - name: pet-api
    specUrl: https://api.example.com/openapi.json

配置

添加要在下使用的每个API apis每个条目都可以指向本地规范文件或远程规范URL。

version: 1

apis:
  - name: pet-api
    specPath: ./pet-api.yaml
    # specUrl: https://api.example.com/openapi.yaml
    baseUrl: https://api.example.com/v1
    timeoutMs: 30000
    headers:
      X-Client: openapi-dynamic-mcp
    retry429:
      maxRetries: 2
      baseDelayMs: 250
      maxDelayMs: 5000
      jitterRatio: 0.2
      respectRetryAfter: true
    oauth2Schemes:
      OAuthCC:
        tokenUrl: https://auth.example.com/oauth2/token
        scopes: [read:pets, write:pets]
        tokenEndpointAuthMethod: client_secret_basic
      UserAuth:
        authMethod: device_code
        deviceAuthorizationEndpoint: https://auth.example.com/oauth/device
        pkce: true

常见选项:

  • name:MCP和CLI命令中显示的API名称
  • specPath 或 specUrl:从哪里加载OpenAPI规范
  • baseUrl:重写规范中的服务器URL
  • headers:每次请求时要发送的标头
  • timeoutMs:默认请求超时
  • retry429:速率受限API的重试行为
  • oauth2Schemes:当规范定义OAuth安全性时,按方案设置OAuth设置

按方案OAuth2配置

使用 oauth2Schemes 当API定义一个或多个OAuth2安全方案,并且您希望为特定方案设置令牌URL、作用域或交互式身份验证首选项时。

方案名称必须与OpenAPI规范中的名称匹配。常见选项包括:

  • tokenUrl
  • scopes
  • tokenEndpointAuthMethod
  • authMethod
  • deviceAuthorizationEndpoint
  • pkce

如果你只需要凭据,环境变量通常就足够了。使用 oauth2Schemes 当您希望将可重用的配置签入项目时。

客户端设置

克劳德桌面/克劳德代码

{
  "mcpServers": {
    "openapi": {
      "command": "npx",
      "args": [
        "-y",
        "openapi-dynamic-mcp@latest",
        "--config",
        "/absolute/path/to/config.yaml"
      ],
      "env": {
        "PET_API_BASE_URL": "http://localhost:3000"
      }
    }
  }
}

光标

{
  "mcpServers": {
    "openapi": {
      "command": "npx",
      "args": [
        "-y",
        "openapi-dynamic-mcp@latest",
        "--config",
        "/absolute/path/to/config.yaml"
      ]
    }
  }
}

命令行界面

服务器模式可用作root命令或显式命令 serve 子命令:

openapi-dynamic-mcp --config ./config.yaml
openapi-dynamic-mcp serve --config ./config.yaml

当您希望在MCP客户端外部使用相同的API访问权限进行脚本编写、调试或身份验证设置时,请使用CLI。

工具命令

每个MCP工具都可以作为CLI子命令使用,该子命令接受一个JSON对象并发出JSON输出:

openapi-dynamic-mcp list_apis --config ./config.yaml --input '{}'
openapi-dynamic-mcp list_api_endpoints --config ./config.yaml --input '{"apiName":"pet-api"}'
openapi-dynamic-mcp get_api_endpoint --config ./config.yaml --input '{"apiName":"pet-api","endpointId":"listPets"}'
openapi-dynamic-mcp get_api_schema --config ./config.yaml --input '{"apiName":"pet-api","pointer":"/info"}'
openapi-dynamic-mcp make_endpoint_request --config ./config.yaml --input '{"apiName":"pet-api","endpointId":"listPets","dryRun":true}'

共享标志:

  • --input :带命令参数的JSON对象
  • --fields :用于过滤成功输出的可重复选择器
  • --describe:打印命令模式和帮助元数据
  • `--auth-file

`:重写身份验证存储路径

身份验证命令

使用 auth 对一个已配置的安全方案进行预身份验证,并为以后的MCP或CLI调用保留其令牌:

openapi-dynamic-mcp auth --config ./config.yaml --api pet-api --scheme OAuthCC
openapi-dynamic-mcp auth --config ./config.yaml --api pet-api --scheme ApiKeyAuth --token secret

对于API密钥和承载认证, --token 直接提供秘密。对于OAuth2,该命令使用您配置的凭据,完成流程,并存储结果以供以后使用。

认证

支持的身份验证类型:

  • API密钥
  • HTTP承载
  • HTTP基本
  • OAuth2客户端凭据
  • OAuth2密码授予(ROPC)
  • OAuth2设备代码
  • 带有PKCE的OAuth2授权码

典型的身份验证流程:

  1. 通过环境变量或配置提供凭据
  2. 跑 auth 如果方案需要存储令牌,则执行一次
  3. 重复使用MCP或CLI中的令牌,直到其过期或更改

身份验证存储

默认情况下,令牌存储在配置文件旁边:

.openapi-dynamic-mcp-auth.json

您可以使用以下任一方式覆盖该路径:

  • --auth-file
  • OPENAPI_DYNAMIC_MCP_AUTH_FILE

这使得API的重复使用更加顺畅,尤其是对于需要经常重新连接的MCP客户端。

交互式OAuth2流

当请求需要用户交互时,该工具会返回结构化的指导,MCP代理可以将其转发给用户。典型的设备代码输出如下:

{
  "status": "authorization_required",
  "method": "device_code",
  "message": "User authorization required. Ask the user to visit the URL and enter the code.",
  "verificationUri": "https://auth.example.com/device",
  "userCode": "ABCD-1234",
  "instruction": "After the user confirms, call this endpoint again."
}

这对MCP代理特别有用,因为身份验证步骤成为用户工作流的正常部分,而不是死胡同错误。

环境变量

环境变量对于机密、基本URL覆盖和CI设置很有用。

名称来源于规范化的API和方案名称:

  • 大写字母
  • 非字母数字字符变为 _
  • 重复的 _ 坍塌
  • 领先和落后 _ 已删除

示例:

  • pet-api -> PET_API
  • OAuth2 -> OAUTH2

API级别变量

  • _BASE_URL
  • _HEADERS 作为JSON对象字符串
  • OPENAPI_DYNAMIC_MCP_AUTH_FILE

API密钥

  • __API_KEY

HTTP身份验证

  • __TOKEN
  • __USERNAME
  • __PASSWORD

OAuth2

  • __ACCESS_TOKEN
  • __CLIENT_ID
  • __CLIENT_SECRET
  • __TOKEN_URL
  • __SCOPES 以空格分隔的列表形式
  • __TOKEN_AUTH_METHOD 作为 client_secret_basic 或 client_secret_post
  • __USERNAME
  • __PASSWORD
  • __AUTH_METHOD 作为 device_code 或 authorization_code
  • __DEVICE_AUTHORIZATION_ENDPOINT
  • __REDIRECT_PORT
  • __PKCE 作为 true 或 false

有用的行为:

  • _ACCESS_TOKEN 完全绕过OAuth授权流。
  • _AUTH_METHOD 力量 device_code 或 authorization_code 当两者都有可能时。
  • _USERNAME 和 _PASSWORD 根据安全方案,用于HTTP基本身份验证和OAuth密码授予。

处理响应

JSONPath过滤

命令行界面 --fields 和MCP fields: string[] 让你只保留成功回复中你关心的部分。当规格或有效载荷太大而无法舒适地检查时,这很有帮助。

示例:

openapi-dynamic-mcp list_apis --config ./config.yaml --fields '$.apis[*].name'
openapi-dynamic-mcp get_api_endpoint --config ./config.yaml --input '{"apiName":"pet-api","endpointId":"listPets"}' --fields '$.responses'

选择器支持引号成员转义、数组索引和通配符。

大型架构警告

get_api_schema 添加a _sizeWarning 当响应非常大时,会提示您缩小JSON指针的范围。

演习

make_endpoint_request 支持 dryRun: true 因此,您可以在发送真正的请求之前确认URL、标头、身份验证和序列化正文。

文件和二进制数据

make_endpoint_request 支持两者 multipart/form-data 以及原始二进制文件上传。

每个文件条目必须提供一个内容源: base64, text,或 filePath.

{
  "name": "avatar.png",
  "contentType": "image/png",
  "filePath": "/absolute/path/to/avatar.png"
}

多部分示例:

{
  "apiName": "pet-api",
  "endpointId": "uploadProfile",
  "contentType": "multipart/form-data",
  "body": {
    "description": "A photo of Fido"
  },
  "files": {
    "profileImage": {
      "name": "fido.jpg",
      "contentType": "image/jpeg",
      "filePath": "/Users/local/images/fido.jpg"
    }
  }
}

原始二进制示例:

{
  "apiName": "pet-api",
  "endpointId": "uploadRaw",
  "contentType": "application/octet-stream",
  "files": {
    "body": {
      "filePath": "/Users/local/data.bin"
    }
  }
}

MCP工具

这五个工具涵盖了主要的用户工作流程:

工具目的
list_apis列出已配置的API
list_api_endpoints在一个API中搜索或分页端点
get_api_endpoint检查端点元数据、参数、响应和安全性
get_api_schema从规范中返回模式对象或JSON指针目标
make_endpoint_request预览或执行端点请求

发展

npm install
npm run build
npm test

有用的命令:

npm run lint
npm run format
npm run test:watch

许可证

麻省理工学院

工具与能力

工具数量

5

资源数量

0

提示词数量

0

能力标签

OpenAPITypeScript本地部署MCP服务器API连接认证支持CLI工具

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 5 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Openapi Dynamic MCP

MCP World · 本页

5stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Openapi Dynamic MCP 怎么安装?

公开资料给出的安装命令是 npx -y openapi-dynamic-mcp@latest --config ./config.yaml,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Openapi Dynamic MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

Openapi Dynamic MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Openapi Dynamic MCP 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Openapi Dynamic MCP 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP