Token导航 LogoToken导航TokenDH.com
swagger2mcp (Ama5ter) logo
开发工具未说明官方级别未说明来源级核验

swagger2mcp (Ama5ter)

MCP Server

一个将Swagger/OpenAPI定义转换为Model Context Protocol (MCP)工具脚手架的命令行生成器,支持Go、Node和Python项目生成。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
API转换Go命令行工具API集成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Amasterr

提供方

Amasterr

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

swagger2mcp

一个将现有 Swagger/OpenAPI 定义转换为 Model Context Protocol (MCP) 工具脚手架的命令行生成器。CLI 可读取本地文件或 HTTP URL 中的 OpenAPI v3 与 Swagger v2 规格,对其进行规范化处理,并生成 Go、Node (npm) 或 Python 的 MCP 工具初始项目。

亮点

  • 自动将 Swagger v2 转换为 OpenAPI v3,并提供清晰的验证与错误提示。
  • 支持远程规格抓取,具备重试和退避策略;加载本地文件时可按需启用外部引用。
  • 可生成带标签过滤的 Go、npm、Python MCP 工具骨架,带有贴心的默认结构。
  • 支持预览模式、覆盖保护、自定义工具/模块命名等高级选项。
  • 提供 init 命令自动写出带注释的配置文件,详细说明每个可用选项。

安装

  • 使用 Go 1.23 或更新版本:
  go install github.com/mark3labs/swagger2mcp/cmd/swagger2mcp@latest
  • 从源码构建:
  git clone https://github.com/mark3labs/swagger2mcp.git
  cd swagger2mcp
  make build            # 生成 ./bin/swagger2mcp

使用

执行 swagger2mcp --help 查看顶层命令。全局标志:

  • --config, -c:从 YAML/JSON 配置文件加载默认值(命令行标志优先生效)。
  • --verbose, -v:开启详细日志输出。

Generate

从规格文件生成 MCP 工具项目:

swagger2mcp generate \
  --input swagger.yaml \
  --lang go \
  --out ./out-go \
  --include-tags public --exclude-tags internal \
  --tool-name petstore \
  --package-name github.com/example/petstore

关键标志说明:

  • --input *(必填)*:Swagger/OpenAPI 文档的路径或 URL。
  • --lang:选择 go(默认)、npmpython
  • --out:输出目录(未提供时默认使用推导出的工具名)。
  • --tool-name:覆盖生成的工具名称;会被标准化为小写加短横线。
  • --package-name:Go 模块名或 npm/Python 包名。
  • --include-tags / --exclude-tags:按 OpenAPI 标签筛选操作(会自动去重和去空白)。
  • --dry-run:仅显示将写入的文件列表,而不修改文件系统。
  • --force:允许覆盖已存在的输出目录。

当校验失败时(如未知语言、标签筛选冲突、权限问题),生成器会返回友好的提示信息。

Init

生成包含注释的配置模板,帮助理解所有可用选项:

swagger2mcp init --out swagger2mcp.yaml

如需覆盖已存在文件,可添加 --force。示例配置:

# swagger2mcp configuration (YAML)
# input: ./openapi.yaml
# lang: go
# out: ./out
# includeTags: [public, read]
# excludeTags: [internal]
# toolName: api-docs
# packageName: example.com/mytool
# dryRun: false
# force: false
# verbose: false

结合 --configgenerate 命令使用,可集中管理默认参数。

示例数据

仓库内包含一个简易 swagger.yaml 可供试验:

swagger2mcp generate --input swagger.yaml --lang npm --out ./tmp/out-npm --force

开发

  • 运行单元测试:make test
  • 使用内置样例进行端到端测试:make e2e
  • 启用在线端到端测试(需访问远程规格):make e2e-online
  • 代码格式化:make fmt
  • 重新生成样例项目:make generate-go-sample / make generate-npm-sample

故障排查

  • 若生成时出现权限或只读错误,说明目标目录不可写,请更换 --out 或在确认后使用 --force
  • 远程抓取失败时会自动重试并采用指数退避;可开启 --verbose 查看请求详情。
  • 如需加载包含 file:// 引用的多文件本地规格,请从本地文件路径启动以自动允许该类引用。

许可

请参阅仓库中的许可文件。

目录标签

目录标签

API转换Go命令行工具API集成本地部署工具脚手架SwaggerOpenAPI

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP