@bloopai/debugger-mcp
Version:
An MCP server that provides interactive debugging capabilities to AI coding agents
69 lines (68 loc) • 2.87 kB
TypeScript
import { DebugProtocol } from '@vscode/debugprotocol';
import { AdapterConfig } from '@bloopai/ergonomic-debugger-client';
import { SessionInfo as ModelSessionInfo, BreakpointResult as ModelBreakpointResult, EvaluationResult as ModelEvaluationResult, ModelStackFrame, ModelThread, Variable as ModelVariable, SessionState } from './index';
import { McpAsyncEvent } from './mcp_protocol_extensions';
export interface TerminatedEventInfo {
terminated: true;
reason?: string;
exitCode?: number;
signal?: string;
error?: Error;
}
export interface HandleGetPendingAsyncEventsResult {
events: McpAsyncEvent[];
}
export interface HandleStartDebugSessionResult {
sessionId: string;
sessionInfo: ModelSessionInfo;
stoppedEvent?: DebugProtocol.StoppedEvent['body'];
}
export type HandleSetBreakpointResult = ModelBreakpointResult;
export type HandleEvaluateExpressionResult = ModelEvaluationResult;
export type HandleGetVariablesResult = ModelVariable[];
export type HandleGetCallStackResult = ModelStackFrame[];
export interface HandleStepOperationBaseResult {
stoppedEvent?: DebugProtocol.StoppedEvent['body'];
sessionState?: SessionState;
outputEvents?: DebugProtocol.OutputEvent['body'][];
terminatedEvent?: TerminatedEventInfo;
error?: string;
topStackFrame?: ModelStackFrame;
}
export interface HandleContinueResult {
success: boolean;
sessionState?: SessionState;
stoppedEvent?: DebugProtocol.StoppedEvent['body'];
outputEvents?: DebugProtocol.OutputEvent['body'][];
terminatedEvent?: TerminatedEventInfo;
topStackFrame?: ModelStackFrame;
}
export interface HandleStepOverResult extends HandleStepOperationBaseResult {
success: boolean;
}
export interface HandleStepInResult extends HandleStepOperationBaseResult {
success: boolean;
}
export interface HandleStepOutResult extends HandleStepOperationBaseResult {
success: boolean;
}
export interface HandleTerminateSessionResult {
success: boolean;
}
export interface HandleListSessionsResult {
sessions: ModelSessionInfo[];
}
export interface HandleListAdaptersResult {
adapters: {
type: string;
config: Partial<AdapterConfig>;
}[];
}
export interface HandleGetSessionDetailsResult {
sessionInfo: ModelSessionInfo;
threads?: ModelThread[];
callStack?: ModelStackFrame[];
breakpoints?: ModelBreakpointResult[];
pendingEventsForSession?: McpAsyncEvent[];
}
export type AnyToolResult = HandleGetPendingAsyncEventsResult | HandleStartDebugSessionResult | HandleSetBreakpointResult | HandleEvaluateExpressionResult | HandleGetVariablesResult | HandleGetCallStackResult | HandleContinueResult | HandleStepOverResult | HandleStepInResult | HandleStepOutResult | HandleTerminateSessionResult | HandleListSessionsResult | HandleListAdaptersResult | HandleGetSessionDetailsResult;