@boundless-oss/atlas
Version:
Atlas - MCP Server for comprehensive startup project management
97 lines (87 loc) • 3.06 kB
text/typescript
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;