@spaik/mcp-server-roi
Version:
MCP server for AI ROI prediction and tracking with Monte Carlo simulations
138 lines • 3.42 kB
TypeScript
import { z } from 'zod';
import { BenchmarkRequest } from './sonar-benchmark-service.js';
export declare const AggregatedBenchmarkSchema: z.ZodObject<{
metric: z.ZodString;
value: z.ZodNumber;
unit: z.ZodString;
confidence: z.ZodNumber;
sources: z.ZodArray<z.ZodObject<{
name: z.ZodString;
value: z.ZodNumber;
date: z.ZodString;
weight: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
name: string;
value: number;
date: string;
weight: number;
}, {
name: string;
value: number;
date: string;
weight: number;
}>, "many">;
consensus: z.ZodEnum<["strong", "moderate", "weak"]>;
recommendedValue: z.ZodNumber;
range: z.ZodObject<{
min: z.ZodNumber;
max: z.ZodNumber;
p25: z.ZodNumber;
p75: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
min: number;
max: number;
p25: number;
p75: number;
}, {
min: number;
max: number;
p25: number;
p75: number;
}>;
}, "strip", z.ZodTypeAny, {
value: number;
metric: string;
unit: string;
confidence: number;
sources: {
name: string;
value: number;
date: string;
weight: number;
}[];
consensus: "strong" | "moderate" | "weak";
recommendedValue: number;
range: {
min: number;
max: number;
p25: number;
p75: number;
};
}, {
value: number;
metric: string;
unit: string;
confidence: number;
sources: {
name: string;
value: number;
date: string;
weight: number;
}[];
consensus: "strong" | "moderate" | "weak";
recommendedValue: number;
range: {
min: number;
max: number;
p25: number;
p75: number;
};
}>;
export type AggregatedBenchmark = z.infer<typeof AggregatedBenchmarkSchema>;
export declare class BenchmarkAggregator {
private logger;
private sonarService?;
private sources;
private fmpApiKey?;
constructor(config?: {
sonarApiKey?: string;
fmpApiKey?: string;
enableSonar?: boolean;
enableFMP?: boolean;
});
/**
* Aggregate benchmarks from all available sources
*/
aggregateBenchmarks(request: BenchmarkRequest): Promise<AggregatedBenchmark[]>;
/**
* Fetch benchmarks from Financial Modeling Prep API
*/
private fetchFMPBenchmarks;
/**
* Fetch static benchmarks from local data
*/
private fetchStaticBenchmarks;
/**
* Group benchmarks by metric name
*/
private groupByMetric;
/**
* Normalize metric names for grouping
*/
private normalizeMetricName;
/**
* Aggregate multiple sources for a single metric
*/
private aggregateMetric;
/**
* Calculate percentile
*/
private percentile;
/**
* Calculate variance
*/
private calculateVariance;
/**
* Calculate average confidence across all benchmarks
*/
private calculateAverageConfidence;
/**
* Get industry-specific adjustment factors
*/
getIndustryAdjustments(industry: string, companySize?: string): Promise<{
sizeMultiplier: number;
complexityFactor: number;
riskAdjustment: number;
}>;
}
//# sourceMappingURL=benchmark-aggregator.d.ts.map