@access-mcp/allocations
Version:
MCP server for ACCESS-CI Allocations and Research Projects API
384 lines (383 loc) • 12.7 kB
TypeScript
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;
}