UNPKG

tak-server-mcp-skyfi

Version:

Model Context Protocol (MCP) server for TAK Server integration with geospatial support

87 lines 3.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCotEventsTool = void 0; exports.getCotEventsTool = { name: 'tak_get_cot_events', description: 'Retrieve Cursor on Target (CoT) events from TAK Server with optional filtering', category: 'cot', requiresAuth: true, requiresWrite: false, inputSchema: { type: 'object', properties: { start: { type: 'string', format: 'date-time', description: 'Start time for event query (ISO 8601)' }, end: { type: 'string', format: 'date-time', description: 'End time for event query (ISO 8601)' }, types: { type: 'array', items: { type: 'string' }, description: 'Filter by CoT types (e.g., ["a-f-G", "a-h-A"])' }, uids: { type: 'array', items: { type: 'string' }, description: 'Filter by specific UIDs' }, bbox: { type: 'array', items: { type: 'number' }, minItems: 4, maxItems: 4, description: 'Bounding box [minLon, minLat, maxLon, maxLat]' }, limit: { type: 'number', minimum: 1, maximum: 1000, default: 100, description: 'Maximum number of events to return' } } }, async handler(context) { const { takClient, params, logger } = context; logger.info('Retrieving CoT events', { params }); try { const events = await takClient.getCotEvents({ start: params.start ? new Date(params.start) : undefined, end: params.end ? new Date(params.end) : undefined, types: params.types, uids: params.uids, bbox: params.bbox, limit: params.limit }); logger.info(`Retrieved ${events.length} CoT events`); return { success: true, count: events.length, events: events.map(event => ({ uid: event.uid, type: event.type, callsign: event.detail?.contact?.callsign, time: event.time, stale: event.stale, location: { lat: event.point.lat, lon: event.point.lon, alt: event.point.hae }, how: event.how, detail: event.detail })) }; } catch (error) { logger.error('Failed to retrieve CoT events', error); throw error; } } }; //# sourceMappingURL=get-events.js.map