UNPKG

@boundless-oss/atlas

Version:

Atlas - MCP Server for comprehensive startup project management

97 lines (87 loc) 3.06 kB
import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'; import { ModuleSetup, ModuleContext } from '../../core/types.js'; // import { ToolCategory } from '../../core/types.js'; import { setupProcessAutomationTools } from './tools.js'; import { convertToolResultToMCP } from '../../core/mcp-adapter.js'; /** * Process Automation Module Setup - 12-Factor MCP Implementation * * Provides comprehensive workflow automation capabilities */ export const processAutomationModule: ModuleSetup = { name: 'process-automation', version: '1.0.0', description: 'Workflow automation with triggers and activities', async setup(context: ModuleContext): Promise<{ success: boolean; error?: string }> { const server = context.server; // Register tools with the server const toolRegistration = await setupProcessAutomationTools(); // Register tool handler for all process automation tools server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name } = request.params; // Find the matching tool const tool = toolRegistration.tools.find(t => t.name === name); if (!tool) { return null; // Let other handlers process this } // Create request context const context = { toolName: name, requestId: `req-${Date.now()}`, projectId: 'default', userId: 'system', timestamp: Date.now(), db: null as any }; // Execute the tool and convert result to MCP format const result = await tool.execute(request.params.arguments || {}, context); return convertToolResultToMCP(result, name); }); return { success: true }; }, async getTools() { const registration = await setupProcessAutomationTools(); return registration.tools; } /* metadata: { category: 'automation', subcategory: 'Workflows', complexity: 'advanced', dependencies: ['projects'], requiredPermissions: ['database:read', 'database:write'], configSchema: { type: 'object', properties: { maxConcurrentExecutions: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: 'Maximum number of concurrent process executions' }, executionTimeout: { type: 'integer', minimum: 1000, maximum: 3600000, default: 300000, description: 'Default execution timeout in milliseconds' }, retentionDays: { type: 'integer', minimum: 1, maximum: 365, default: 30, description: 'Number of days to retain execution history' }, enableAiSuggestions: { type: 'boolean', default: true, description: 'Enable AI-powered trigger suggestions' } } } } */ }; // Default export for compatibility export default processAutomationModule;