UNPKG

coreto-mcp-glpi

Version:

MCP Server para integração CORETO AI com GLPI via tools de tickets

156 lines (142 loc) 3.18 kB
// Application Constants export const APP_CONFIG = { NAME: 'CORETO Backend', VERSION: '1.0.0', DEFAULT_PORT: 3000, DEFAULT_TIMEOUT: 30000, // 30 seconds MAX_REQUEST_SIZE: '1mb' } // Tenant Types export const TENANT_TYPES = { ROOT: 'root', B2B: 'b2b', B2C: 'b2c' } // Session Types export const SESSION_TYPES = { GLPI: 'glpi', WHATSAPP: 'whatsapp', MCP: 'mcp' } // MCP Protocol Constants export const MCP_CONFIG = { CLIENT_NAME: 'coreto-gateway', CLIENT_VERSION: '1.0.0', CAPABILITIES: {}, TIMEOUT: 15000 } // GLPI API Constants export const GLPI_CONFIG = { SESSION_TIMEOUT: 3600000, // 1 hour MAX_RETRIES: 3, RETRY_DELAY: 1000, ENDPOINTS: { INIT_SESSION: '/initSession/', KILL_SESSION: '/killSession/', TICKET: '/Ticket', TICKET_VALIDATION: '/TicketValidation', FOLLOWUP: '/ITILFollowup', USER: '/User' } } // Ticket Status Mapping export const TICKET_STATUS = { 1: 'Novo', 2: 'Em atendimento (atribuído)', 3: 'Em atendimento (planejado)', 4: 'Pendente', 5: 'Solucionado', 6: 'Fechado' } // Ticket Priority Mapping export const TICKET_PRIORITY = { 1: 'Muito baixa', 2: 'Baixa', 3: 'Média', 4: 'Alta', 5: 'Muito alta' } // WhatsApp Constants export const WHATSAPP_CONFIG = { API_VERSION: 'v19.0', MESSAGE_TYPES: { TEXT: 'text', IMAGE: 'image', DOCUMENT: 'document', AUDIO: 'audio' }, MAX_MESSAGE_LENGTH: 4096 } // Ollama Constants export const OLLAMA_CONFIG = { DEFAULT_URL: 'http://localhost:11434', DEFAULT_MODEL: 'llama3.2:3b', MAX_CONCURRENT: 2, DEFAULT_TEMPERATURE: 0.7, DEFAULT_MAX_TOKENS: 512, ENDPOINTS: { GENERATE: '/api/generate', TAGS: '/api/tags', PULL: '/api/pull' } } // Available Tools Configuration export const TOOLS_CONFIG = { WHATSAPP: [ 'create_ticket', 'get_ticket_status', 'add_followup', 'get_user_tickets' ], CHAT_AI: [ 'create_ticket', 'get_ticket_status', 'add_followup', 'get_user_tickets', 'search_tickets', 'update_ticket', 'close_ticket' ] } // Cache Configuration export const CACHE_CONFIG = { TENANT_TTL: 300000, // 5 minutes SESSION_TTL: 3600000, // 1 hour GLPI_SESSION_TTL: 3600000, // 1 hour MAX_CACHE_SIZE: 1000 } // Rate Limiting export const RATE_LIMIT_CONFIG = { WINDOW_MS: 900000, // 15 minutes MAX_REQUESTS: 100, SKIP_SUCCESSFUL_REQUESTS: false, SKIP_FAILED_REQUESTS: false } // Error Codes export const ERROR_CODES = { INVALID_TENANT: 'INVALID_TENANT', GLPI_CONNECTION_FAILED: 'GLPI_CONNECTION_FAILED', MCP_SERVER_UNAVAILABLE: 'MCP_SERVER_UNAVAILABLE', TOOL_NOT_FOUND: 'TOOL_NOT_FOUND', UNAUTHORIZED: 'UNAUTHORIZED', VALIDATION_ERROR: 'VALIDATION_ERROR', WHATSAPP_API_ERROR: 'WHATSAPP_API_ERROR', OLLAMA_ERROR: 'OLLAMA_ERROR' } // HTTP Status Codes export const HTTP_STATUS = { OK: 200, CREATED: 201, BAD_REQUEST: 400, UNAUTHORIZED: 401, FORBIDDEN: 403, NOT_FOUND: 404, INTERNAL_SERVER_ERROR: 500, SERVICE_UNAVAILABLE: 503 } // Database Table Names export const DB_TABLES = { TENANTS: 'tenants', WHATSAPP_CONTACTS: 'whatsapp_contacts', SYSTEM_SESSIONS: 'system_sessions' }