coreto-mcp-glpi
Version:
MCP Server para integração CORETO AI com GLPI via tools de tickets
156 lines (142 loc) • 3.18 kB
JavaScript
// 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'
}