tak-server-mcp-skyfi
Version:
Model Context Protocol (MCP) server for TAK Server integration with geospatial support
81 lines • 2.77 kB
TypeScript
import { EventEmitter } from 'events';
import { Logger } from 'pino';
import { CotEvent, CotMessage } from '../types/cot';
import { TAKEntity, Mission, DataPackage } from '../types/tak';
export interface TAKServerClientConfig {
url: string;
apiToken?: string;
clientCert?: string;
clientKey?: string;
verifySsl?: boolean;
timeout?: number;
logger?: Logger;
}
export declare class TAKServerClient extends EventEmitter {
private axios;
private ws?;
private config;
private logger?;
constructor(config: TAKServerClientConfig);
testConnection(): Promise<void>;
getCotEvents(params?: {
start?: Date;
end?: Date;
types?: string[];
uids?: string[];
bbox?: [number, number, number, number];
limit?: number;
}): Promise<CotEvent[]>;
private formatTAKDate;
private parseCotEvent;
sendCotEvent(event: CotMessage): Promise<void>;
subscribeToCotEvents(filter?: {
types?: string[];
bbox?: [number, number, number, number];
}, onEvent?: (event: CotEvent) => void): Promise<void>;
unsubscribe(): Promise<void>;
getEntities(params?: {
types?: string[];
teams?: string[];
roles?: string[];
bbox?: [number, number, number, number];
}): Promise<TAKEntity[]>;
getEntity(uid: string): Promise<TAKEntity>;
getMissions(): Promise<Mission[]>;
getMission(name: string): Promise<Mission>;
createMission(mission: Partial<Mission>): Promise<Mission>;
updateMission(name: string, updates: Partial<Mission>): Promise<Mission>;
deleteMission(name: string): Promise<void>;
getDataPackages(): Promise<DataPackage[]>;
uploadDataPackage(file: Buffer, metadata: Partial<DataPackage>): Promise<DataPackage>;
downloadDataPackage(id: string): Promise<Buffer>;
deleteDataPackage(id: string): Promise<void>;
spatialQuery(params: {
center: [number, number];
radius?: number;
polygon?: [number, number][];
types?: string[];
timeWindow?: {
start: Date;
end: Date;
};
}): Promise<CotEvent[]>;
calculateDistance(point1: [number, number], point2: [number, number]): Promise<number>;
findNearest(params: {
point: [number, number];
types?: string[];
limit?: number;
maxDistance?: number;
}): Promise<Array<TAKEntity & {
distance: number;
}>>;
getAlerts(active?: boolean): Promise<any[]>;
sendAlert(alert: {
type: string;
message: string;
point: [number, number];
severity: 'low' | 'medium' | 'high' | 'critical';
}): Promise<void>;
disconnect(): Promise<void>;
}
//# sourceMappingURL=tak-server.d.ts.map