swagger-mcp

swagger-mcp

site icon
2025.04.19 18
GoAPI 工具生成Swagger 集成开发效率
`swagger-mcp` 是一个专为 Swagger UI 设计的工具,能够提取 `swagger.json` 文件并动态生成定义良好的 mcp 工具,供 MCP 客户端进一步选择使用。该工具旨在通过 API 响应提供准确的数据,避免 LLM 模型产生幻觉或随机数据,从而提高开发效率和工具可靠性。
View on GitHub

Overview

基本能力

产品定位

swagger-mcp 是一个用于动态生成 API 工具的工具,旨在通过 Swagger UI 的规范文件生成可用的 MCP 工具,供客户端调用。

核心功能

  1. Swagger UI 抓取:从 Swagger UI 中提取 swagger.json 文件。
  2. 动态工具生成:根据 Swagger 规范动态生成 MCP 工具。
  3. LLM 集成:支持与 OpenAI、Claude 或 Ollama 等 LLM 模型集成。
  4. MCP 客户端兼容:生成的工具可直接供 MCP 客户端使用。

适用场景

  1. API 开发与测试:快速生成 API 工具,用于开发和测试。
  2. 自动化工具链:集成到自动化工具链中,提高开发效率。
  3. LLM 辅助开发:结合 LLM 模型,提供更智能的 API 调用支持。

工具列表

  1. swagger-mcp:主工具,用于抓取 Swagger UI 并生成 MCP 工具。
  2. mcphost:MCP 客户端,用于运行生成的工具。
  3. go-backend-demo:示例后端服务,用于演示。
  4. Ollama:本地 LLM 模型,用于工具调用。

常见问题解答

  1. 如何避免 LLM 产生幻觉数据?
  2. 通过严格依赖 API 响应,避免 LLM 使用自身记忆生成数据。
  3. 如何改进工具定义?
  4. 提供反馈或贡献代码,优化工具定义和错误处理。
  5. 如何集成到现有项目?
  6. 通过 .mcp.json 配置文件指定 swagger-mcp 的启动参数。

使用教程

使用依赖

  1. LLM 模型 API 密钥或本地 LLM:如 OpenAI、Claude 或 Ollama。
  2. MCP 客户端:如 mcphost

安装教程

go install github.com/danishjsheikh/swagger-mcp@latest
swagger-mcp

MCP 配置

.mcp.json 中添加以下配置:

{
    "mcpServers": {
        "swagger_loader": {
            "command": "swagger-mcp",
            "args": ["--specUrl=<swagger/doc.json_url>"]
        }
    }
}

调试方式

  1. 启动示例后端:
go install github.com/danishjsheikh/go-backend-demo@latest
go-backend-demo
  1. 启动 Ollama:
ollama run llama3.2
  1. 启动 MCP 客户端:
go install github.com/mark3labs/mcphost@latest
mcphost -m ollama:llama3.2 --config <.mcp.json_file_path>

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。