UNPKG

spec-workflow-mcp

Version:

MCP server for managing spec workflow (requirements, design, implementation)

51 lines • 1.87 kB
#!/usr/bin/env node /** * MCP specification workflow server * Standard implementation based on MCP SDK */ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { specWorkflowTool } from './tools/specWorkflowTool.js'; import { openApiLoader } from './features/shared/openApiLoader.js'; import { readFileSync } from 'fs'; import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8')); // Create server instance const server = new McpServer({ name: 'specs-workflow-mcp', version: packageJson.version }); // Register tools specWorkflowTool.register(server); // Start server async function main() { try { // Initialize OpenAPI loader to ensure examples are cached openApiLoader.loadSpec(); const transport = new StdioServerTransport(); await server.connect(transport); // eslint-disable-next-line no-console console.error('✨ MCP specification workflow server started'); // eslint-disable-next-line no-console console.error(`šŸ“ Version: ${packageJson.version} (Fully compliant with MCP best practices)`); } catch (error) { // eslint-disable-next-line no-console console.error('āŒ Startup failed:', error); // eslint-disable-next-line no-undef process.exit(1); } } // Graceful shutdown // eslint-disable-next-line no-undef process.on('SIGINT', () => { // eslint-disable-next-line no-console console.error('\nšŸ‘‹ Server shutdown'); // eslint-disable-next-line no-undef process.exit(0); }); main(); //# sourceMappingURL=index.js.map