gmail-mcp-server
Version:
Gmail MCP Server with on-demand authentication for SIYA/Claude Desktop. Complete Gmail integration with multi-user support and OAuth2 security.
106 lines • 3.21 kB
TypeScript
/**
* Enhanced Gmail Search Implementation
* Provides natural language query parsing, fuzzy matching, and cross-reference detection
*/
export interface EnhancedSearchQuery {
text: string;
dateRange?: {
start: Date;
end: Date;
};
sender?: string[];
subject?: string;
hasAttachment?: boolean;
labels?: string[];
threadId?: string;
entities?: {
panNumbers?: string[];
dinNumbers?: string[];
amounts?: number[];
organizations?: string[];
dates?: Date[];
};
intent?: 'find_document' | 'check_status' | 'find_related' | 'summarize' | 'general';
}
export interface SearchResult {
email: any;
matchScore: number;
matchedField: string;
relevance: 'exact' | 'high' | 'medium' | 'low';
crossReferences?: string[];
}
export interface CrossReferenceInfo {
emailId: string;
relationship: 'same_thread' | 'same_sender' | 'same_topic' | 'same_entity';
confidence: number;
reason: string;
}
/**
* Natural Language Query Parser
* Converts natural language queries into structured search criteria
*/
export declare class NLQueryParser {
private readonly timePatterns;
private readonly entityPatterns;
private readonly intentKeywords;
parseQuery(naturalQuery: string): EnhancedSearchQuery;
private extractTimeRange;
private extractEntities;
private extractSenders;
private extractSubjectKeywords;
private detectIntent;
private extractAttachmentRequirement;
private extractLabels;
private parseDate;
private getMonthNumber;
}
/**
* Fuzzy Matching Engine
* Provides intelligent matching with similarity scoring
*/
export declare class FuzzyMatcher {
private readonly similarityThreshold;
constructor(threshold?: number);
calculateSimilarity(str1: string, str2: string): number;
private calculateCharacterSimilarity;
findMatches(query: string, emails: any[]): SearchResult[];
private extractSender;
private extractContent;
private decodeBase64Url;
private getRelevanceLevel;
private findCrossReferences;
}
/**
* Cross-Reference Detection Engine
* Finds related emails based on various criteria
*/
export declare class CrossReferenceEngine {
findRelatedEmails(email: any, allEmails: any[]): Promise<CrossReferenceInfo[]>;
private extractEntities;
private extractPANNumbers;
private extractDINNumbers;
private extractAmounts;
private extractOrganizations;
private extractDates;
private findRelationship;
private extractSender;
private findEntityMatches;
private calculateTopicSimilarity;
}
/**
* Enhanced Search Manager
* Combines all enhanced search capabilities
*/
export declare class EnhancedSearchManager {
private nlParser;
private fuzzyMatcher;
private crossReferenceEngine;
constructor(fuzzyThreshold?: number);
processNaturalLanguageQuery(naturalQuery: string, emails: any[]): Promise<{
structuredQuery: EnhancedSearchQuery;
searchResults: SearchResult[];
crossReferences: CrossReferenceInfo[];
}>;
private deduplicateCrossReferences;
}
//# sourceMappingURL=enhanced-search.d.ts.map