UNPKG

@access-mcp/software-discovery

Version:

ACCESS-CI Software Discovery Service MCP server

117 lines (116 loc) 3.39 kB
import { BaseAccessServer } from "@access-mcp/shared"; import { AxiosInstance } from "axios"; export declare class SoftwareDiscoveryServer extends BaseAccessServer { private _sdsClient?; constructor(); /** * Normalizes resource IDs to handle legacy XSEDE format and domain variations. * This provides backward compatibility while the SDS API migrates to ACCESS-CI format. * * @param resourceId - The resource ID to normalize * @returns The normalized resource ID in ACCESS-CI format */ private normalizeResourceId; protected get sdsClient(): AxiosInstance; protected getTools(): ({ name: string; description: string; inputSchema: { type: string; properties: { query: { type: string; description: string; }; resource_filter: { type: string; description: string; }; resource_id?: undefined; limit?: undefined; software_name?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { resource_id: { type: string; description: string; }; limit: { type: string; description: string; }; query?: undefined; resource_filter?: undefined; software_name?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { software_name: { type: string; description: string; }; resource_id: { type: string; description: string; }; query?: undefined; resource_filter?: undefined; limit?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { resource_id: { type: string; description: string; }; query?: undefined; resource_filter?: undefined; limit?: undefined; software_name?: undefined; }; required: never[]; }; })[]; protected getResources(): { uri: string; name: string; description: string; mimeType: string; }[]; protected handleToolCall(request: any): Promise<{ content: { type: string; text: string; }[]; }>; protected handleResourceRead(request: any): Promise<{ contents: { uri: any; mimeType: string; text: string; }[]; }>; private searchSoftware; private listSoftwareByResource; private getSoftwareDetails; private getSoftwareCategories; }