UNPKG

@access-mcp/allocations

Version:

MCP server for ACCESS-CI Allocations and Research Projects API

384 lines (383 loc) 12.7 kB
import { BaseAccessServer } from "@access-mcp/shared"; export declare class AllocationsServer extends BaseAccessServer { private projectCache; private cacheTimestamps; private readonly CACHE_TTL; constructor(); protected getTools(): ({ name: string; description: string; inputSchema: { type: string; properties: { query: { type: string; description: string; }; field_of_science: { type: string; description: string; }; allocation_type: { type: string; description: string; }; date_range: { type: string; description: string; properties: { start_date: { type: string; description: string; }; end_date: { type: string; description: string; }; }; }; min_allocation: { type: string; description: string; }; sort_by: { type: string; description: string; enum: string[]; default: string; }; limit: { type: string; description: string; default: number; }; project_id?: undefined; resource_name?: undefined; pages_to_analyze?: undefined; keywords?: undefined; similarity_threshold?: undefined; include_same_field?: undefined; show_similarity_scores?: undefined; pi_name?: undefined; institution_name?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { project_id: { type: string; description: string; }; query?: undefined; field_of_science?: undefined; allocation_type?: undefined; date_range?: undefined; min_allocation?: undefined; sort_by?: undefined; limit?: undefined; resource_name?: undefined; pages_to_analyze?: undefined; keywords?: undefined; similarity_threshold?: undefined; include_same_field?: undefined; show_similarity_scores?: undefined; pi_name?: undefined; institution_name?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { field_of_science: { type: string; description: string; }; limit: { type: string; description: string; default: number; }; query?: undefined; allocation_type?: undefined; date_range?: undefined; min_allocation?: undefined; sort_by?: undefined; project_id?: undefined; resource_name?: undefined; pages_to_analyze?: undefined; keywords?: undefined; similarity_threshold?: undefined; include_same_field?: undefined; show_similarity_scores?: undefined; pi_name?: undefined; institution_name?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { resource_name: { type: string; description: string; }; limit: { type: string; description: string; default: number; }; query?: undefined; field_of_science?: undefined; allocation_type?: undefined; date_range?: undefined; min_allocation?: undefined; sort_by?: undefined; project_id?: undefined; pages_to_analyze?: undefined; keywords?: undefined; similarity_threshold?: undefined; include_same_field?: undefined; show_similarity_scores?: undefined; pi_name?: undefined; institution_name?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { pages_to_analyze: { type: string; description: string; default: number; }; query?: undefined; field_of_science?: undefined; allocation_type?: undefined; date_range?: undefined; min_allocation?: undefined; sort_by?: undefined; limit?: undefined; project_id?: undefined; resource_name?: undefined; keywords?: undefined; similarity_threshold?: undefined; include_same_field?: undefined; show_similarity_scores?: undefined; pi_name?: undefined; institution_name?: undefined; }; required: never[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { project_id: { type: string; description: string; }; keywords: { type: string; description: string; }; similarity_threshold: { type: string; description: string; default: number; minimum: number; maximum: number; }; include_same_field: { type: string; description: string; default: boolean; }; show_similarity_scores: { type: string; description: string; default: boolean; }; limit: { type: string; description: string; default: number; }; query?: undefined; field_of_science?: undefined; allocation_type?: undefined; date_range?: undefined; min_allocation?: undefined; sort_by?: undefined; resource_name?: undefined; pages_to_analyze?: undefined; pi_name?: undefined; institution_name?: undefined; }; required: never[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { pi_name: { type: string; description: string; }; institution_name: { type: string; description: string; }; field_of_science: { type: string; description: string; }; limit: { type: string; description: string; default: number; }; query?: undefined; allocation_type?: undefined; date_range?: undefined; min_allocation?: undefined; sort_by?: undefined; project_id?: undefined; resource_name?: undefined; pages_to_analyze?: undefined; keywords?: undefined; similarity_threshold?: undefined; include_same_field?: undefined; show_similarity_scores?: undefined; }; required: never[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { institution_name: { type: string; description: string; }; limit: { type: string; description: string; default: number; }; query?: undefined; field_of_science?: undefined; allocation_type?: undefined; date_range?: undefined; min_allocation?: undefined; sort_by?: undefined; project_id?: undefined; resource_name?: undefined; pages_to_analyze?: undefined; keywords?: undefined; similarity_threshold?: undefined; include_same_field?: undefined; show_similarity_scores?: undefined; pi_name?: undefined; }; required: string[]; }; })[]; protected getResources(): { uri: string; name: string; description: string; mimeType: string; }[]; handleToolCall(request: any): Promise<{ content: { type: string; text: string; }[]; }>; handleResourceRead(request: any): Promise<{ contents: { uri: any; mimeType: string; text: string; }[]; }>; private fetchProjects; private getCachedProjects; private cacheProjects; private fetchMultiplePages; private searchProjects; private parseAdvancedQuery; private calculateAdvancedSearchScore; private applySorting; private buildSearchSummary; private formatAdvancedSearchResults; private calculateSearchScore; private projectMatchesQuery; private getProjectDetails; private listProjectsByField; private listProjectsByResource; private getAllocationStatistics; private findSimilarProjects; private extractKeyTermsFromProject; private calculateAdvancedSimilarity; private calculateResourceSimilarity; private formatSimilarProject; private calculateProjectSimilarity; private isStopWord; private cleanupExpiredCache; private clearCache; private formatAllocation; private formatProjectResults; private formatSingleProject; private analyzeProjectFunding; private generatePINameVariations; private parseNSFResponseExact; private validateInstitutionMatch; private analyzeTemporalAlignment; private findFundedProjects; private extractProjectsFromSearchResult; private getProjectsByField; private getTopProjects; private searchProjectsByPIName; private searchProjectsByInstitution; private crossReferenceWithNSF; private parseNSFResponse; private formatProjectSummaries; private summarizeResources; private institutionalFundingProfile; private normalizeInstitutionName; private getInstitutionVariants; private generateSystematicInstitutionVariants; private generateLocationVariants; private getKnownInstitutionVariants; private getProjectsByInstitution; private matchesInstitution; private formatInstitutionalAccessProjects; private analyzeInstitutionalResources; private crossReferenceInstitutionPIs; private getUniqueFieldsCount; private callRemoteServer; private getServiceEndpoint; }