UNPKG

@vfarcic/dot-ai

Version:

AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance

80 lines 2.56 kB
/** * Model Context Protocol (MCP) Interface for DevOps AI Toolkit * * Provides MCP server capabilities that expose DevOps AI Toolkit functionality * to AI assistants through standardized protocol */ import { DotAI } from '../core/index'; import { McpClientInfo } from '../core/telemetry'; import { PluginManager } from '../core/plugin-manager'; export interface MCPServerConfig { name: string; version: string; description: string; author?: string; port?: number; host?: string; /** Optional PluginManager for plugin-based tools (PRD #343) */ pluginManager?: PluginManager; } export declare class MCPServer { private dotAI; private initialized; private logger; private requestIdCounter; private config; private httpServer?; /** Per-session state: each MCP client gets its own McpServer + transport */ private sessions; private sessionGcTimer?; private restRegistry; private restApiRouter; private pluginManager?; private oauthApp?; private oauthProvider?; private issuerUrl?; constructor(dotAI: DotAI, config: MCPServerConfig); /** * Get the current MCP client info (available after client connects). * Returns info from the most recently connected session. */ getMcpClientInfo(): McpClientInfo | undefined; /** * Register a tool with the REST registry only (shared, one-time). */ private registerRestTool; /** * Register a tool on a per-session McpServer instance. */ private registerMcpTool; /** * Tool definitions — shared between REST (registered once) and MCP (registered per session). */ private getToolDefs; /** * Register tools with the shared REST registry (called once at startup). */ private registerRestTools; /** * Create a new McpServer instance with all tools and prompts registered. * Each MCP client session gets its own server instance (SDK limitation: * Protocol only supports one transport per server). */ private createSessionServer; /** * Register prompts capability on a given McpServer instance. */ private registerPromptsOn; private configureHostProvider; /** * Reap sessions that have been inactive for longer than SESSION_TTL_MS. */ private reapStaleSessions; private generateRequestId; start(): Promise<void>; private startHttpTransport; private parseRequestBody; stop(): Promise<void>; isReady(): boolean; } //# sourceMappingURL=mcp.d.ts.map