MCP Swagger命令行界面
MCP Swagger CLI是一个命令行工具,可根据Swagger/OpenAPI规范生成可运行的MCP服务器。它将API操作映射到MCP工具,将模式映射到MCP资源,并提供一个完整的、随时可用的MCP服务器实现。
特性
- 解析OpenAPI 3.x和Swagger 2.0 规格
- 生成MCP工具 来自API操作(GET、POST、PUT、DELETE等)
- 生成MCP资源 来自API架构
- 多种运输支持:stdio和SSE/HTTP
- 自动类型转换 从JSON模式到Python类型
- 带有进度反馈的CLI 和验证
安装
使用pip
pip install mcp-swagger-cli使用紫外线(推荐用于速度)
uv pip install mcp-swagger-cli开发安装
git clone https://github.com/mcp-swagger/mcp-swagger-cli.git
cd mcp-swagger-cli
pip install -e .用法
基本用法
根据Swagger/OpenAPI规范生成MCP服务器:
mcp-swagger create https://petstore.swagger.io/v2/swagger.json -o ./my_mcp_server使用自定义选项
mcp-swagger create ./api_spec.yaml \
--output ./my_server \
--name my_api \
--transport stdio \
--base-url https://api.example.com \
--api-key-env MY_API_KEY \
--api-key-header Authorization \
--api-key-prefix Bearer验证规范
在生成之前,请验证您的OpenAPI规范:
mcp-swagger validate-spec https://petstore.swagger.io/v2/swagger.json查看规格信息
显示有关规范的信息,而不生成:
mcp-swagger info https://petstore.swagger.io/v2/swagger.json命令参考
mcp-swagger create
根据Swagger/OpenAPI规范创建MCP服务器。
Usage: mcp-swagger create [OPTIONS]
Arguments:
spec URL or file path to Swagger/OpenAPI specification
Options:
-o, --output PATH Output directory for generated MCP server
-n, --name TEXT Name for the generated MCP server
-t, --transport TEXT Transport type (stdio or sse)
-b, --base-url TEXT Base URL for API requests
--validate / --no-validate Validate specification before generating
-f, --force Overwrite output directory if it exists
-v, --verbose Enable verbose output
--api-key-env TEXT Environment variable name to read API key from at runtime
--api-key-header TEXT HTTP header name for API key (default: Authorization)
--api-key-prefix TEXT Prefix for API key in header (e.g., 'Bearer', 'Token', 'Bot', or empty)
-H, --header TEXT Custom HTTP header as 'Name: Value' (repeatable)
-T, --tag TEXT Filter operations by tag (repeatable)
--path-filter TEXT Filter operations by path substring (repeatable)
--max-operations INT Warn and abort if filtered operation count exceeds this number
--help Show this message and exit.过滤大规格
像Stripe或Discord这样的大型API可以生成无法管理的大型服务器。使用 --path-filter 或 --tag 生成范围:
# Filter by path substring (Discord guild endpoints only)
mcp-swagger create ./discord.json -o ./server --path-filter /guilds --path-filter /channels
# Filter by tag
mcp-swagger create ./api.json -o ./server --tag payments --tag customers
# Abort if too many operations
mcp-swagger create ./api.json -o ./server --max-operations 50注: 一些API(例如Stripe)使用单个default标签用于所有操作。使用--path-filter而不是--tag为了这些。
mcp-swagger validate-spec
验证Swagger/OpenAPI规范。
Usage: mcp-swagger validate-spec [OPTIONS]
Arguments:
spec URL or file path to Swagger/OpenAPI specification
Options:
-v, --verbose Show detailed validation results
--help Show this message and exit.mcp-swagger info
显示有关Swagger/OpenAPI规范的信息。
Usage: mcp-swagger info [OPTIONS]
Arguments:
spec URL or file path to Swagger/OpenAPI specification
Options:
--help Show this message and exit.生成的服务器使用情况
生成MCP服务器后,请按照以下步骤使用它:
1.安装服务器
cd my_mcp_server
pip install -e .2.运行服务器
标准运输 (建议用于Claude Desktop):
my_mcp_server苏格兰和南方能源公司运输 (用于远程访问):
my_mcp_server --sse 80003.使用Claude Desktop进行配置
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"my_mcp_server": {
"command": "my_mcp_server",
"args": []
}
}
}运作原理
MCP Swagger CLI解析您的OpenAPI/Swagger规范并生成:
- MCP工具 -每个API操作都成为一个MCP工具,具有:
- 工具名称来自 operationId (或生成) - 描述来自 summary/description - 来自路径/查询/标头参数的参数 - 请求身体支持
- MCP资源 -每个模式都成为MCP资源:
- schema://api/schemas -所有模式列表 - schema://api/{schema_name} -单个模式定义 - api://operations -所有操作列表
- 运输 -支持:
- stdio -标准I/O(本地,默认) - sse -服务器通过HTTP发送事件
例子
看 示例 示例规范和用法目录。
发展
运行测试
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v项目结构
mcp-swagger-cli/
├── mcp_swagger_cli/
│ ├── __init__.py
│ ├── cli.py # CLI commands
│ ├── generator.py # Server generation logic
│ ├── parser.py # OpenAPI parsing
│ ├── exceptions.py # Custom exceptions
│ └── templates/ # Jinja2 templates
├── tests/ # Test suite
├── pyproject.toml # Project configuration
└── README.md # This file需求
- Python 3.10+
- typer(CLI框架)
- httpx(HTTP客户端)
- prance(OpenAPI解析器)
- jinja2(模板引擎)
许可证
MIT许可证-请参阅 许可证 了解详情。
贡献
欢迎投稿!请阅读我们的 贡献指南 第一。
相关
- MCP Python SDK -MCP Python官方实现
- FastMCP -高级MCP框架
- OpenAPI规范 -OpenAPI标准
