syia-mcp-utils
Version:
Global utility functions for MCP server
109 lines (108 loc) • 6.37 kB
TypeScript
import { ToolArguments, ToolResponse } from "./types/index.js";
export declare function fetchQADetails(imo: string, qaId: number): Promise<any>;
export declare function fetchQADetailsAndCreateResponse(imo: string | undefined, questionNo: number, functionName: string, linkHeader: string, session_id?: string): Promise<ToolResponse>;
export declare function getComponentData(componentId: string): Promise<string>;
export declare function addComponentData(answer: string, imo: string): Promise<string>;
export declare function getVesselQnASnapshot(imo: string, questionNo: string): Promise<any>;
export declare function getVesselQnASnapshotHandler(arguments_: ToolArguments): Promise<ToolResponse>;
export declare function getDataLink(data: any[]): Promise<string>;
type InsertMode = 'general' | 'pms';
interface InsertDataLinkOptions {
mode: InsertMode;
collectionName: string;
dataLink: string;
linkHeader?: string;
sessionId: string;
imo?: string;
vesselName?: string;
type?: string;
}
/**
* Generic function to insert data links into MongoDB
*/
export declare function insertDataLinkToMongoDBGeneric(options: InsertDataLinkOptions): Promise<void>;
export declare function insertDataLinkToMongoDB(link: string, type: string, sessionId: string, imo: string, vesselName: string): Promise<void>;
export declare function insertPmsDataLinkToMongodb(dataLink: string, linkHeader: string, sessionId: string, imo?: string, vesselName?: string): Promise<void>;
export declare function getArtifact(toolName: string, link: string): Promise<any>;
export declare function getListOfArtifacts(toolName: string, linkData: Array<{
title: string;
url: string | null;
}>): Promise<ToolResponse>;
export declare function convertUnixDates(document: any): any;
/**
* Convert data to CSV format
* @param data - Array of objects to convert
* @returns CSV string
*/
export declare function convertToCSV(data: any[]): string;
export declare function processTypesenseResults(searchResult: any, toolName: string, title: string, session_id: string | undefined, linkHeader: string, artifactTitle?: string): Promise<ToolResponse>;
export declare function processTypesenseExportResults(documents: any[], toolName: string, title: string, artifactTitle: string, session_id: string, linkHeader: string, imo: string, vesselName: string | null): Promise<ToolResponse>;
export declare function formatTypesenseResults(searchResult: any, toolName: string, title: string, dataLink: string, artifactTitle?: string): Promise<ToolResponse>;
/**
* Step 1: Query Typesense fleet-details collection to get fleet IMO by name
* @param fleetName - Name of the fleet (e.g., "SMPL DRY")
* @returns Promise<number | null> - Fleet IMO number or null if not found
*/
export declare function getFleetImoByName(fleetName: string): Promise<number | null>;
/**
* Step 2: Query MongoDB common_group_details collection to get vessel IMO list
* @param fleetImo - IMO number of the fleet
* @returns Promise<number[]> - Array of vessel IMO numbers
*/
export declare function getVesselImoListFromFleet(fleetImo: number): Promise<number[]>;
export declare function updateTypesenseFilterWithCompanyImos(filter: string): Promise<string>;
export declare function updateTypesenseFilterWithCompanyImosPms(filter: string): Promise<string>;
export declare function updateTypesenseFilterWithCompanyImosDefect(filter: string): Promise<string>;
/**
* Update MongoDB filter with company IMO numbers for filtering (PMS version)
* @param filter - Existing MongoDB filter object
* @returns Updated filter object with IMO restrictions
*/
export declare function updateMongoFilterWithCompanyImos(filter: any): Promise<any>;
/**
* Update MongoDB aggregation pipeline with company IMO numbers for filtering (PMS version)
* @param pipeline - Existing MongoDB aggregation pipeline
* @returns Updated pipeline with IMO restrictions
*/
export declare function updateMongoAggregationWithCompanyImos(pipeline: any[]): Promise<any[]>;
/**
* Update search query parameters with company IMO filtering (PMS version)
* @param searchParams - Search parameters object
* @returns Updated search parameters with IMO restrictions
*/
export declare function updateSearchParamsWithCompanyImos(searchParams: any): Promise<any>;
/**
* Check if a vessel IMO is authorized for the current company (PMS version)
* @param imo - IMO number to check
* @returns True if authorized, false otherwise
*/
export declare function isVesselAuthorizedForCompany(imo: string | number): Promise<boolean>;
/**
* Get authorized IMO numbers for the current company (PMS version)
* @returns Array of authorized IMO numbers
*/
export declare function getAuthorizedImoNumbers(): Promise<string[]>;
/**
* Log IMO filtering activity for monitoring (PMS version)
* @param action - Action being performed
* @param details - Additional details about the filtering
*/
export declare function logImoFilteringActivity(action: string, details?: any): Promise<void>;
export declare function exportDefectsForImoList(imoList: number[], startDate?: string, endDate?: string): Promise<any[]>;
export declare function exportPurchasesForImoList(imoList: number[], startDate?: string, endDate?: string): Promise<any[]>;
export declare function exportBudgetsForImoList(imoList: number[], startDate?: string, endDate?: string): Promise<any[]>;
export declare function exportExpensesForImoList(imoList: number[], startDate?: string, endDate?: string): Promise<any[]>;
export declare function exportSurveysForImoList(imoList: number[], startDate?: string, endDate?: string): Promise<any[]>;
type DatabaseContext = 'pms' | 'pms-etl' | 'pms-engine' | 'defect' | 'defect-secondary';
/**
* Get MongoDB database instance by context
* @param context - Determines the client and database name to use
* @returns MongoDB Database instance
*/
export declare function getDatabaseInstance(context: DatabaseContext): Promise<import("mongodb").Db>;
export declare function getPmsDatabase(): Promise<import("mongodb").Db>;
export declare function getPmsEtlDatabase(): Promise<import("mongodb").Db>;
export declare function getPmsEngineDataDatabase(): Promise<import("mongodb").Db>;
export declare function getDefectDatabase(): Promise<import("mongodb").Db>;
export declare function getDefectSecondaryDatabase(): Promise<import("mongodb").Db>;
export {};