- Parse and validate OpenAPI 3.x / Swagger 2.0 specs - Query endpoints by method, path pattern, tag, operationId - Get component schema details - Generate TypeScript interfaces from schemas - Support local files and remote URLs Tools: parse-spec, validate-spec, query-endpoints, get-schema, generate-types Co-Authored-By: Claude <noreply@anthropic.com>
91 lines
1.7 KiB
JavaScript
91 lines
1.7 KiB
JavaScript
#!/usr/bin/env node
|
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
|
|
import {
|
|
parseToolName,
|
|
parseToolDescription,
|
|
parseToolSchema,
|
|
parseToolHandler,
|
|
} from './tools/parse.js';
|
|
|
|
import {
|
|
validateToolName,
|
|
validateToolDescription,
|
|
validateToolSchema,
|
|
validateToolHandler,
|
|
} from './tools/validate.js';
|
|
|
|
import {
|
|
queryToolName,
|
|
queryToolDescription,
|
|
queryToolSchema,
|
|
queryToolHandler,
|
|
} from './tools/query.js';
|
|
|
|
import {
|
|
schemaToolName,
|
|
schemaToolDescription,
|
|
schemaToolSchema,
|
|
schemaToolHandler,
|
|
} from './tools/schema.js';
|
|
|
|
import {
|
|
generateToolName,
|
|
generateToolDescription,
|
|
generateToolSchema,
|
|
generateToolHandler,
|
|
} from './tools/generate.js';
|
|
|
|
const server = new McpServer({
|
|
name: 'swagger-tools',
|
|
version: '0.1.0',
|
|
});
|
|
|
|
// Register parse-spec tool
|
|
server.tool(
|
|
parseToolName,
|
|
parseToolDescription,
|
|
parseToolSchema,
|
|
parseToolHandler
|
|
);
|
|
|
|
// Register validate-spec tool
|
|
server.tool(
|
|
validateToolName,
|
|
validateToolDescription,
|
|
validateToolSchema,
|
|
validateToolHandler
|
|
);
|
|
|
|
// Register query-endpoints tool
|
|
server.tool(
|
|
queryToolName,
|
|
queryToolDescription,
|
|
queryToolSchema,
|
|
queryToolHandler
|
|
);
|
|
|
|
// Register get-schema tool
|
|
server.tool(
|
|
schemaToolName,
|
|
schemaToolDescription,
|
|
schemaToolSchema,
|
|
schemaToolHandler
|
|
);
|
|
|
|
// Register generate-types tool
|
|
server.tool(
|
|
generateToolName,
|
|
generateToolDescription,
|
|
generateToolSchema,
|
|
generateToolHandler
|
|
);
|
|
|
|
// Start the server with stdio transport
|
|
async function main() {
|
|
const transport = new StdioServerTransport();
|
|
await server.connect(transport);
|
|
}
|
|
|
|
main().catch(console.error);
|