UNPKG

@boundless-oss/atlas

Version:

Atlas - MCP Server for comprehensive startup project management

86 lines 3.1 kB
import { CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'; // import { ToolCategory } from '../../core/types.js'; import { setupIssueTrackingTools } from './tools.js'; import { convertToolResultToMCP } from '../../core/mcp-adapter.js'; /** * Issue Tracking Module Setup - 12-Factor MCP Implementation * * Provides comprehensive issue tracking capabilities */ export const issueTrackingModule = { name: 'issue-tracking', version: '1.0.0', description: 'Track bugs, features, and enhancements', async setup(context) { const server = context.server; // Register tools with the server const toolRegistration = await setupIssueTrackingTools(); // Register tool handler for all issue tracking 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 }; // 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 setupIssueTrackingTools(); return registration.tools; } /* metadata: { category: 'project-management', subcategory: 'Issue Tracking', complexity: 'intermediate', dependencies: ['projects'], requiredPermissions: ['database:read', 'database:write'], configSchema: { type: 'object', properties: { defaultPriority: { type: 'string', enum: ['critical', 'high', 'medium', 'low'], default: 'medium', description: 'Default priority for new issues' }, allowAnonymousIssues: { type: 'boolean', default: false, description: 'Allow creating issues without authentication' }, requireLabels: { type: 'boolean', default: false, description: 'Require at least one label on issues' }, autoAssignToCreator: { type: 'boolean', default: false, description: 'Automatically assign issues to their creator' }, issueNumberPrefix: { type: 'string', default: 'ISSUE', description: 'Prefix for issue IDs' } } } } */ }; // Default export for compatibility export default issueTrackingModule; //# sourceMappingURL=index.js.map