finops-mcp-server
Version:
MCP server for FinOps Center cost optimization integration
95 lines • 3.08 kB
TypeScript
/**
* 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