generate_api_client
Create TypeScript API clients automatically from Swagger/OpenAPI specifications. Simplify integration by generating code directly from URLs or local JSON files. Ideal for web development workflows.
Instructions
Generate TypeScript API client from Swagger/OpenAPI specification
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dir | Yes | workspace dir | |
| source | Yes | 使用本地文件路径或 swagger URL 生成 API 和类型文件 / URL or JSON file path. Examples: For full path: '//user/file.json', For file only: 'file.json' returns 'file json'. URLs should start with '/' for proper routing. |
Implementation Reference
- src/index.ts:166-192 (handler)Handler implementation for the 'generate_api_client' tool. Parses source and dir arguments, constructs file path, calls Swagger2InterfaceOutput to generate TypeScript API client files in the 'apis' subdirectory, returns success message or throws McpError on failure.case 'generate_api_client': { const { source, dir } = args // 判断 source 是否是文件路径 const isFilePath = source.startsWith('/') const filePath = isFilePath ? `/${source}` : source try { await Swagger2InterfaceOutput({ source: filePath, isDev: false, dir: path.join(dir, 'apis'), }) return { content: [ { type: 'text', text: 'API client generated successfully. Please check the apis directory. output file list', }, ], } } catch (error) { console.error('Error while generating API client:', error) throw new McpError(ErrorCode.InternalError, 'Failed to generate API client', { code: ErrorCode.InternalError, message: 'Failed to generate API client', }) } }
- src/index.ts:21-35 (schema)Input schema for the 'generate_api_client' tool defining required 'source' (Swagger/OpenAPI URL or file path) and 'dir' (workspace directory) properties.inputSchema: { type: 'object', properties: { source: { type: 'string', description: "使用本地文件路径或 swagger URL 生成 API 和类型文件 / URL or JSON file path. Examples: For full path: '//user/file.json', For file only: 'file.json' returns 'file json'. URLs should start with '/' for proper routing.", }, dir: { type: 'string', description: 'workspace dir', }, }, required: ['source', 'dir'], },
- src/index.ts:18-36 (registration)Registration of the 'generate_api_client' tool in the TOOLS array, which is served via the ListToolsRequestHandler. Includes name, description, and input schema.{ name: 'generate_api_client', description: 'Generate TypeScript API client from Swagger/OpenAPI specification', inputSchema: { type: 'object', properties: { source: { type: 'string', description: "使用本地文件路径或 swagger URL 生成 API 和类型文件 / URL or JSON file path. Examples: For full path: '//user/file.json', For file only: 'file.json' returns 'file json'. URLs should start with '/' for proper routing.", }, dir: { type: 'string', description: 'workspace dir', }, }, required: ['source', 'dir'], }, },