使用说明
openapi生成
解析OpenAPI规范并生成MCP工具模式和支架。
概述
此MCP服务器提供以下工具:
- 解析OpenAPI 3.0和3.1规范
- 根据解析的规范生成MCP工具定义
- 用TypeScript或Python生成完整的MCP服务器支架
安装
npm install
npm run build
用法
运行服务器
STDIO传输(默认)
npm start
HTTP传输
MCP_TRANSPORT=http npm start
# or
npm start -- --transport http --port 8080
开发模式
npm run dev
CLI选项
-t, --transport <type> Transport type: 'stdio' (default) or 'http'
-p, --port <number> Port for HTTP transport (default: 3000)
-H, --host <host> Host for HTTP transport (default: 127.0.0.1)
-h, --help Show help message
-v, --version Show version information
工具
openapi_parse
从URL或JSON字符串解析OpenAPI规范。
输入:
spec_url_or_json(string,必填):OpenAPI规范的URL或原始JSON字符串
输出:
- 结构化表示包括:
openapi_versionOpenAPI版本(3.0.x或3.1.x)info:API标题、版本、说明servers:服务器URL和变量paths:带操作的解析路径schemas:组件架构security_schemes:安全方案定义
例子:
{
"spec_url_or_json": "https://petstore3.swagger.io/api/v3/openapi.json"
}
generate_tool_schemas
根据解析的OpenAPI规范生成MCP工具定义。
输入:
parsed_spec(object,必填):输出来自openapi_parse
输出:
tools:MCP工具定义数组summary:统计数据包括工具总数和标签计数
例子:
{
"parsed_spec": { /* output from openapi_parse */ }
}
generate_server_scaffold
按照Dedalus惯例生成一个完整的MCP服务器脚手架。
输入:
parsed_spec(object,必填):输出来自openapi_parselanguage(字符串,必填):"typescript"或"python"options(对象,可选):server_name:生成的服务器的名称server_version:版本字符串author:作者姓名include_tests:是否包含测试文件(默认值:true)base_url:API调用的基本URL
输出:
files:包含路径和内容的生成文件数组language:目标语言tool_count:生成的工具数量
例子:
{
"parsed_spec": { /* output from openapi_parse */ },
"language": "typescript",
"options": {
"server_name": "my-api-server",
"include_tests": true
}
}
响应格式
所有工具都遵循标准的Dedalus响应信封:
成功响应
{
"ok": true,
"data": { /* tool-specific output */ },
"meta": {
"source": "optional source info",
"retrieved_at": "2024-01-15T12:00:00.000Z",
"pagination": { "next_cursor": null },
"warnings": []
}
}
错误响应
{
"ok": false,
"error": {
"code": "INVALID_INPUT",
"message": "Human-readable error message",
"details": {}
},
"meta": {
"retrieved_at": "2024-01-15T12:00:00.000Z"
}
}
错误代码
INVALID_INPUT:提供的参数无效UPSTREAM_ERROR:无法获取远程资源RATE_LIMITED:超出费率限制TIMEOUT:操作超时PARSE_ERROR:无法解析输入INTERNAL_ERROR:意外内部错误
配置
复制 .env.example 到 .env 并配置:
cp .env.example .env
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_TRANSPORT |
传输类型(stdio/http) | stdio |
MCP_PORT |
HTTP端口 | 3000 |
MCP_HOST |
HTTP主机 | 127.0.0.1 |
MCP_SERVER_NAME |
服务器名称 | openapi生成 |
MCP_SERVER_VERSION |
服务器版本 | 1.0.0 |
发展
测试
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
类型检查
npm run typecheck
建筑
npm run build
生成的脚手架结构
TypeScript
generated-server/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # MCP server setup
│ ├── config.ts # Configuration
│ ├── types.ts # Type definitions
│ ├── cli.ts # CLI argument parsing
│ ├── tools/
│ │ ├── index.ts # Tool exports
│ │ └── [tool].ts # Individual tool files
│ └── transport/
│ ├── index.ts
│ ├── stdio.ts
│ └── http.ts
├── tests/
│ ├── unit/
│ │ └── tools.test.ts
│ └── e2e/
│ └── server.test.ts
├── package.json
├── tsconfig.json
├── vitest.config.ts
├── .env.example
├── .gitignore
└── README.md
python
generated-server/
├── src/
│ ├── main.py # Entry point
│ ├── server.py # MCP server setup
│ ├── config.py # Configuration
│ ├── types.py # Type definitions
│ └── tools/
│ ├── __init__.py
│ └── [tool].py # Individual tool files
├── tests/
│ ├── __init__.py
│ └── test_tools.py
├── pyproject.toml
├── .env.example
├── .gitignore
└── README.md
许可证
麻省理工学院
