UNPKG

finops-mcp-server

Version:

MCP server for FinOps Center cost optimization integration

95 lines 3.08 kB
/** * FinOps Center API Client * * This module implements the HTTP/GraphQL client for communicating with FinOps Center APIs. * It provides methods for cost optimization recommendations, trend analysis, and recommendation creation. */ import { APIClient, CostOptimizationParams, CostTrendParams, CostOptimizationInput, CostOptimizationResponse, CostTrendsResponse, CostOptimizationCreateResponse, GraphQLQuery, GraphQLResponse, HTTPRequestConfig, HTTPResponse } from './types/api'; import { ServerConfig, Logger } from './types/config'; import { AuthManager } from './auth-manager'; /** * HTTP Client for making requests to FinOps Center APIs */ export declare class HTTPClient { private config; private authManager; private logger; constructor(config: ServerConfig, authManager: AuthManager, logger?: Logger); /** * Make HTTP request with retry logic and error handling */ request<T = any>(requestConfig: HTTPRequestConfig): Promise<HTTPResponse<T>>; /** * Make a single HTTP request */ private makeRequest; /** * Create HTTP error from response */ private createHTTPError; /** * Extract rate limit information from response headers */ private extractRateLimitInfo; /** * Get error code based on HTTP status */ private getErrorCode; /** * Categorize error type for appropriate handling */ private categorizeError; /** * Calculate retry delay based on error type and attempt number */ private calculateRetryDelay; /** * Sleep for specified milliseconds */ private sleep; } /** * GraphQL client for FinOps Center API */ export declare class GraphQLClient { private httpClient; private config; private logger; constructor(httpClient: HTTPClient, config: ServerConfig, logger?: Logger); /** * Execute GraphQL query */ query<T = any>(query: GraphQLQuery): Promise<GraphQLResponse<T>>; /** * Execute GraphQL mutation */ mutate<T = any>(mutation: GraphQLQuery): Promise<GraphQLResponse<T>>; } /** * Main FinOps Center API Client */ export declare class FinOpsAPIClient implements APIClient { private httpClient; private graphqlClient; private config; private logger; private performanceMonitor; constructor(config: ServerConfig, authManager: AuthManager, logger?: Logger, performanceMonitor?: any); /** * Get cost optimization recommendations */ getCostOptimizationRecommendations(params: CostOptimizationParams): Promise<CostOptimizationResponse>; /** * Analyze cost trends */ analyzeCostTrends(params: CostTrendParams): Promise<CostTrendsResponse>; /** * Process cost optimization recommendation (matches actual schema) */ processCostOptimizationRecommendation(input: CostOptimizationInput): Promise<CostOptimizationCreateResponse>; /** * Sanitize parameters for logging (remove sensitive data) */ private sanitizeParams; } //# sourceMappingURL=api-client.d.ts.map