@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
TypeScript
/**
* 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