@access-mcp/software-discovery
Version:
ACCESS-CI Software Discovery Service MCP server
117 lines (116 loc) • 3.39 kB
TypeScript
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;
}