mcp-ai-agent-guidelines
Version:
A comprehensive Model Context Protocol server providing advanced tools, resources, and prompts for implementing AI agent best practices
112 lines • 3.2 kB
TypeScript
/**
* Feature Flags Configuration
*
* Provides environment-based feature flags for gradual rollout of new capabilities
* without breaking existing behavior. Supports gateway integration, spec-kit output,
* and cross-cutting capabilities.
*
* @module config/feature-flags
* @see {@link https://github.com/Anselmoo/mcp-ai-agent-guidelines/blob/development/plan-v0.13.x/adrs/ADR-002-feature-flag-migration.md ADR-002}
*/
/**
* Feature flags for controlling new functionality rollout.
*
* All flags default to false (disabled) for backward compatibility.
* Override via environment variables:
* - MCP_USE_POLYGLOT_GATEWAY=true
* - MCP_ENABLE_SPECKIT=true
* - MCP_ENABLE_ENTERPRISE=true
* - MCP_ENABLE_CROSS_CUTTING=true
* - MCP_ENABLE_MODE_FILTERING=true
*
* @interface FeatureFlags
*/
export interface FeatureFlags {
/**
* Enable PolyglotGateway for output strategy rendering.
* When false, uses legacy formatting code.
*
* @default false
*/
usePolyglotGateway: boolean;
/**
* Enable Spec-Kit output format (.specify/ directory structure).
*
* @default false
*/
enableSpecKitOutput: boolean;
/**
* Enable Enterprise output format (TDD, HLD, LLD).
*
* @default false
*/
enableEnterpriseOutput: boolean;
/**
* Enable cross-cutting capabilities (workflows, diagrams, configs).
*
* @default false
*/
enableCrossCuttingCapabilities: boolean;
/**
* Enable mode-aware tool filtering in list_tools handler.
* When true, only tools relevant to the current mode are returned.
*
* @default false
*/
enableModeAwareToolFiltering: boolean;
}
/**
* Get current feature flags from environment variables.
*
* Reads feature flags from process.env and returns configuration.
* Environment variables override defaults:
* - MCP_USE_POLYGLOT_GATEWAY=true
* - MCP_ENABLE_SPECKIT=true
* - MCP_ENABLE_ENTERPRISE=true
* - MCP_ENABLE_CROSS_CUTTING=true
* - MCP_ENABLE_MODE_FILTERING=true
*
* @returns {FeatureFlags} Current feature flag configuration
*
* @example
* ```typescript
* const flags = getFeatureFlags();
* if (flags.usePolyglotGateway) {
* // Use new gateway
* } else {
* // Use legacy code
* }
* ```
*/
export declare function getFeatureFlags(): FeatureFlags;
/**
* Check if any feature flags are enabled.
*
* Useful for determining if new code paths should be activated at all.
*
* @returns {boolean} True if any feature flag is enabled
*
* @example
* ```typescript
* if (hasAnyFlagsEnabled()) {
* initializeNewFeatures();
* }
* ```
*/
export declare function hasAnyFlagsEnabled(): boolean;
/**
* Get a summary of current feature flag state.
*
* Returns object with flag names and their current values,
* useful for debugging and logging.
*
* @returns {Record<string, boolean>} Map of flag names to values
*
* @example
* ```typescript
* console.log('Feature flags:', getFeatureFlagSummary());
* // Output: { usePolyglotGateway: false, enableSpecKitOutput: false, ... }
* ```
*/
export declare function getFeatureFlagSummary(): Record<string, boolean>;
//# sourceMappingURL=feature-flags.d.ts.map