一个连接到Swagger规范的MCP服务器,帮助AI构建生成该服务所需的所有模型。
git clone https://github.com/readingdancer/swagger-mcp.git
cd swagger-mcp
npm install
.env.example文件创建.env文件:cp .env.example .env
.env文件。编辑.env文件以配置应用程序:
PORT:服务器运行的端口(默认:3000)NODE_ENV:环境(开发、生产、测试)LOG_LEVEL:日志级别(info、error、debug)构建应用程序:
npm run build
这将编译TypeScript代码,使其准备好作为MCP服务器使用。
要作为MCP服务器运行以集成到Cursor和其他应用程序中:
node build/index.js
要运行MCP检查器进行调试:
npm run inspector
要将此MCP服务器添加到Cursor:
node path/to/swagger-mcp/build/index.js,然后根据需要添加命令行参数。现在,Swagger MCP工具将在Composer中的Cursor代理中可用。
通过MCP服务器提供以下工具:
getSwaggerDefinition:从URL下载Swagger定义listEndpoints:列出Swagger定义中的所有端点listEndpointModels:列出特定端点使用的所有模型generateModelCode:为模型生成TypeScript代码generateEndpointToolCode:为MCP工具定义生成TypeScript代码服务器还提供了MCP提示,引导AI助手完成常见工作流程:
add-endpoint:使用Swagger MCP工具添加新端点的逐步指南要使用提示,客户端可以发出带有提示名称和可选参数的prompts/get请求:
{
"method": "prompts/get",
"params": {
"name": "add-endpoint",
"arguments": {
"swaggerUrl": "https://petstore.swagger.io/v2/swagger.json",
“endpointPath”: “/pets/{id}”,
“httpMethod”: “GET”
}
}
}
提示将返回一系列消息,指导AI助手完成添加新端点的确切过程。
首先让代理获取Swagger文件,确保您为其提供了Swagger文件的URL,或者至少提供了一种找到它的方法,这将下载文件并将其保存在本地,使用哈希文件名保存。这个文件名将自动添加到当前解决方案根目录下的.swagger-mcp设置文件中。
.swagger-mcp配置文件SWAGGER_FILENAME = 本地存储的Swagger文件的文件名
这个简单的配置文件将您的当前项目与特定的Swagger API关联起来,我们可能会在未来使用它来存储更多细节。
一旦配置好,MCP就能找到您的Swagger定义,并将其与您当前的解决方案关联起来,减少获取项目和与您正在处理的解决方案相关的任务所需的API调用次数。
MCP工具代码生成器已增强,提供更完整且易于使用的工具定义:
taskRequest而不是task.Request)。要为端点生成MCP工具定义:
import generateEndpointToolCode from './services/generateEndpointToolCode.js';
const toolCode = await generateEndpointToolCode({
path: '/pets',
method: 'POST',
swaggerFilePath: './petstore.json',
singularizeResourceNames: true
});
console.log(toolCode);
这将为POST /pets端点生成一个完整的MCP工具定义,包括完整的模式信息。
本项目采用MIT许可证——详情见LICENSE文件。
为了帮助AI助手有效使用Swagger MCP工具,我们创建了一系列引导它们完成常见任务的提示。这些提示为诸如添加新端点、使用生成的模型等过程提供了逐步说明。
查看PROMPTS.md文件以获取完整的提示集合。
示例用例:当要求AI助手向您的项目添加新端点时,您可以参考“添加新端点”提示,以确保助手按照正确的顺序执行正确的过程。