Skip to main content
Glama

Watchtower DAP Windows Debugging

by rlaksana
netmvc-tools.schemas.ts12.6 kB
import { z } from 'zod'; /** * ASP.NET Core specific debugging schemas */ // HTTP Request Debugging Schema export const DapHttpRequestDebugRequestSchema = z.object({ type: z.literal('request'), seq: z.number(), command: z.literal('debugHttpRequest'), arguments: z.object({ requestId: z.string().optional(), method: z.enum(['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS']), path: z.string(), queryString: z.string().optional(), headers: z.record(z.string()).optional(), body: z.string().optional(), cookies: z.record(z.string()).optional(), session: z.record(z.any()).optional(), user: z.record(z.any()).optional(), routeData: z.record(z.any()).optional(), controller: z.string().optional(), action: z.string().optional(), modelState: z.record(z.any()).optional(), form: z.record(z.any()).optional(), files: z.record(z.any()).optional(), culture: z.string().optional(), acceptedLanguages: z.array(z.string()).optional(), isAjax: z.boolean().optional(), isLocal: z.boolean().optional(), protocol: z.string().optional(), scheme: z.string().optional(), host: z.string().optional(), originalUrl: z.string().optional(), }), }); // Database Query Debug Schema export const DapDatabaseQueryDebugRequestSchema = z.object({ type: z.literal('request'), seq: z.number(), command: z.literal('debugDatabaseQuery'), arguments: z.object({ queryId: z.string().optional(), queryText: z.string(), parameters: z.record(z.any()).optional(), parameterTypes: z.record(z.string()).optional(), executionTime: z.number().optional(), connection: z.string().optional(), isAsync: z.boolean().optional(), entityType: z.string().optional(), dbContext: z.string().optional(), transaction: z.string().optional(), commandType: z.enum(['Text', 'StoredProcedure', 'TableDirect']).optional(), tableMappings: z.record(z.any()).optional(), changeTracking: z.boolean().optional(), }), }); // Distributed Trace Schema export const DapDistributedTraceRequestSchema = z.object({ type: z.literal('request'), seq: z.number(), command: z.literal('trackDistributedTrace'), arguments: z.object({ traceId: z.string(), spanId: z.string(), parentSpanId: z.string().optional(), service: z.string(), operation: z.string(), startTime: z.number(), endTime: z.number().optional(), duration: z.number().optional(), tags: z.record(z.any()).optional(), logs: z.array(z.record(z.any())).optional(), references: z.array(z.record(z.any())).optional(), baggage: z.record(z.string()).optional(), }), }); // ASP.NET Core Evaluation Request Schema export const DapAspNetEvaluationRequestSchema = z.object({ type: z.literal('request'), seq: z.number(), command: z.literal('evaluateAspNet'), arguments: z.object({ expression: z.string(), frameId: z.number().optional(), context: z.enum(['hover', 'watch', 'repl', 'clipboard']).default('repl'), ASPNETSpecific: z.boolean().default(true), }), }); // .NET Microservice Launch Request Schema export const DapNetMvcLaunchRequestSchema = z.object({ type: z.literal('request'), seq: z.number(), command: z.literal('launch'), arguments: z.object({ __type__: z.literal('LaunchRequestArguments'), program: z.string(), cwd: z.string(), args: z.array(z.string()).optional(), noDebug: z.boolean().default(false), sourceMaps: z.boolean().default(true), console: z .enum(['internalConsole', 'integratedTerminal', 'externalTerminal']) .default('integratedTerminal'), internalConsoleOptions: z .enum(['neverOpen', 'openOnSessionStart', 'openOnDebugBreak']) .default('neverOpen'), stopAtEntry: z.boolean().default(false), launchSettings: z.record(z.any()).optional(), // ASP.NET Core specific environment: z.enum(['Development', 'Staging', 'Production']).default('Development'), urls: z.string().default('https://localhost:5001;http://localhost:5000'), applicationUrl: z.string().optional(), launchBrowser: z.boolean().default(true), useSSL: z.boolean().default(true), sslPort: z.number().default(5001), httpPort: z.number().default(5000), // Entity Framework Core databaseProvider: z .enum(['SQLServer', 'PostgreSQL', 'MySQL', 'SQLite', 'Oracle']) .default('SQLServer'), connectionString: z.string().optional(), migrationsEnabled: z.boolean().default(true), // Microservice configuration serviceDiscovery: z.record(z.any()).optional(), apiGateway: z.string().optional(), serviceRegistry: z.string().optional(), loadBalancer: z.string().optional(), // Logging configuration logLevel: z .enum(['trace', 'debug', 'information', 'warning', 'error', 'critical', 'none']) .default('information'), logProviders: z.array(z.string()).optional(), // Health checks healthChecksEnabled: z.boolean().default(true), healthCheckPath: z.string().default('/health'), // Performance monitoring enablePerformanceMonitoring: z.boolean().default(true), performanceMetricsInterval: z.number().default(30), // CORS configuration corsOrigins: z.array(z.string()).optional(), corsMethods: z.array(z.string()).optional(), corsHeaders: z.array(z.string()).optional(), // Security authentication: z.record(z.any()).optional(), authorization: z.record(z.any()).optional(), jwtSecret: z.string().optional(), // Configuration appSettings: z.record(z.any()).optional(), userSecrets: z.boolean().default(false), // Dependency injection serviceLifetime: z.enum(['Transient', 'Scoped', 'Singleton']).default('Scoped'), // MVC specific mvcViewEngine: z.enum(['Razor', 'Spark', 'NHaml']).default('Razor'), razorPagesEnabled: z.boolean().default(true), areasEnabled: z.boolean().default(true), // SignalR signalREnabled: z.boolean().default(false), signalROptions: z.record(z.any()).optional(), // gRPC grpcEnabled: z.boolean().default(false), grpcReflectionEnabled: z.boolean().default(false), // OpenAPI/Swagger openApiEnabled: z.boolean().default(true), openApiPath: z.string().default('/swagger/v1/swagger.json'), openUiPath: z.string().default('/swagger'), // Testing integrationTestsEnabled: z.boolean().default(true), unitTestsEnabled: z.boolean().default(true), loadTestsEnabled: z.boolean().default(false), }), }); // HTTP Request Response Schema export const DapHttpRequestDebugResponseSchema = z.object({ type: z.literal('response'), seq: z.number(), command: z.literal('debugHttpRequest'), request_seq: z.number(), success: z.boolean(), message: z.string().optional(), body: z .object({ success: z.boolean(), requestId: z.string(), message: z.string(), httpRequest: z.record(z.any()).optional(), }) .optional(), }); // Database Query Response Schema export const DapDatabaseQueryResponseSchema = z.object({ type: z.literal('response'), seq: z.number(), command: z.literal('debugDatabaseQuery'), request_seq: z.number(), success: z.boolean(), message: z.string().optional(), body: z .object({ success: z.boolean(), queryId: z.string(), message: z.string(), databaseQuery: z.record(z.any()).optional(), executionPlan: z.string().optional(), queryAnalysis: z.record(z.any()).optional(), }) .optional(), }); // Distributed Trace Response Schema export const DapDistributedTraceResponseSchema = z.object({ type: z.literal('response'), seq: z.number(), command: z.literal('trackDistributedTrace'), request_seq: z.number(), success: z.boolean(), message: z.string().optional(), body: z .object({ success: z.boolean(), traceId: z.string(), message: z.string(), distributedTrace: z.record(z.any()).optional(), traceVisualization: z.string().optional(), }) .optional(), }); // ASP.NET Evaluation Response Schema export const DapAspNetEvaluationResponseSchema = z.object({ type: z.literal('response'), seq: z.number(), command: z.literal('evaluateAspNet'), request_seq: z.number(), success: z.boolean(), message: z.string().optional(), body: z .object({ result: z.string(), type: z.string(), presentationHint: z.record(z.any()).optional(), variablesReference: z.number(), namedVariables: z.number().optional(), indexedVariables: z.number().optional(), ASPNETSpecific: z .object({ httpContext: z.record(z.any()).optional(), controllerContext: z.record(z.any()).optional(), routeData: z.record(z.any()).optional(), viewData: z.record(z.any()).optional(), tempData: z.record(z.any()).optional(), session: z.record(z.any()).optional(), configuration: z.record(z.any()).optional(), dbContext: z.record(z.any()).optional(), identity: z.record(z.any()).optional(), }) .optional(), }) .optional(), }); // Microservice Information Schema export const DapMicroserviceInfoSchema = z.object({ sessionId: z.string(), microservice: z.object({ name: z.string(), environment: z.string(), version: z.string(), services: z.array(z.string()), connectionString: z.string(), isMvc: z.boolean(), controllerActions: z.array(z.string()), status: z.enum(['starting', 'running', 'stopping', 'stopped', 'error']), health: z.enum(['healthy', 'degraded', 'unhealthy']), uptime: z.number(), memoryUsage: z.number(), cpuUsage: z.number(), requestCount: z.number(), errorCount: z.number(), averageResponseTime: z.number(), }), }); // Performance Metrics Schema export const DapPerformanceMetricsSchema = z.object({ sessionId: z.string(), timestamp: z.number(), metrics: z.object({ requestsPerSecond: z.number(), averageResponseTime: z.number(), errorRate: z.number(), cpuUsage: z.number(), memoryUsage: z.number(), garbageCollections: z.number(), threadCount: z.number(), handleCount: z.number(), workingSet: z.number(), privateBytes: z.number(), databaseConnections: z.number(), databaseQueriesPerSecond: z.number(), cacheHitRate: z.number(), activeConnections: z.number(), queuedRequests: z.number(), throughput: z.number(), p95ResponseTime: z.number(), p99ResponseTime: z.number(), }), }); // Distributed Trace Visualization Schema export const DapTraceVisualizationSchema = z.object({ sessionId: z.string(), traceId: z.string(), visualization: z.object({ spans: z.array( z.object({ id: z.string(), parentId: z.string().optional(), operationName: z.string(), startTime: z.number(), duration: z.number(), service: z.string(), tags: z.record(z.any()), logs: z.array(z.record(z.any())), isError: z.boolean(), stackTrace: z.string().optional(), }) ), timeline: z.array( z.object({ timestamp: z.number(), event: z.string(), service: z.string(), operation: z.string(), duration: z.number(), properties: z.record(z.any()), }) ), criticalPath: z.array(z.string()), totalTime: z.number(), startTime: z.number(), endTime: z.number(), }), }); // Export all schemas export type DapHttpRequestDebugRequest = z.infer<typeof DapHttpRequestDebugRequestSchema>; export type DapDatabaseQueryDebugRequest = z.infer<typeof DapDatabaseQueryDebugRequestSchema>; export type DapDistributedTraceRequest = z.infer<typeof DapDistributedTraceRequestSchema>; export type DapAspNetEvaluationRequest = z.infer<typeof DapAspNetEvaluationRequestSchema>; export type DapNetMvcLaunchRequest = z.infer<typeof DapNetMvcLaunchRequestSchema>; export type DapHttpRequestDebugResponse = z.infer<typeof DapHttpRequestDebugResponseSchema>; export type DapDatabaseQueryResponse = z.infer<typeof DapDatabaseQueryResponseSchema>; export type DapDistributedTraceResponse = z.infer<typeof DapDistributedTraceResponseSchema>; export type DapAspNetEvaluationResponse = z.infer<typeof DapAspNetEvaluationResponseSchema>; export type DapMicroserviceInfo = z.infer<typeof DapMicroserviceInfoSchema>; export type DapPerformanceMetrics = z.infer<typeof DapPerformanceMetricsSchema>; export type DapTraceVisualization = z.infer<typeof DapTraceVisualizationSchema>;

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rlaksana/mcp-watchtower'

If you have feedback or need assistance with the MCP directory API, please join our Discord server