For the complete documentation index, see llms.txt. This page is also available as Markdown.

Observability & Monitoring

Track performance, monitor requests, and respond to events in real-time.

Statistics & Monitoring

The MCP server automatically tracks metrics for monitoring and analytics.

Enabling Statistics

Stats are enabled by default:

// Stats enabled by default
server = MCPServer( "myApp" )

// Explicitly disable
server = MCPServer( name: "myApp", statsEnabled: false )

Get Summary Statistics

Quick overview of key metrics:

summary = server.getStatsSummary()

writeOutput( "Total Requests: #summary.totalRequests#" )
writeOutput( "Success Rate: #summary.successRate#%" )
writeOutput( "Avg Response Time: #summary.avgResponseTime#ms" )
writeOutput( "Tool Calls: #summary.totalToolInvocations#" )
writeOutput( "Resource Reads: #summary.totalResourceReads#" )
writeOutput( "Errors: #summary.totalErrors#" )
writeOutput( "Uptime: #summary.uptime / 1000#s" )

Fields:

  • uptime — Server uptime in milliseconds

  • totalRequests — Total requests processed

  • successRate — Success rate as percentage

  • avgResponseTime — Average response time in ms

  • requestsPerMinute — Request rate

  • activeRequests — Currently processing requests

  • paused — Whether server is paused

  • totalToolInvocations — Total tool calls

  • totalResourceReads — Total resource reads

  • totalPromptGenerations — Total prompt generations

  • totalErrors — Total errors encountered

  • security.authFailures — Failed HTTP basic auth attempts

  • security.apiKeyFailures — Failed API key checks

  • security.bodySizeViolations — Rejected oversized payloads

  • security.ipFilterFailures — Rejected client IP addresses

Get Detailed Statistics

Complete stats with breakdowns:

Managing Statistics

Event System 🎯

The MCP server fires custom events during its lifecycle, allowing you to add logging, monitoring, and custom integration.

Available Events

onMCPServerCreate

Fired when an MCP server instance is created.

onMCPServerRemove

Fired when an MCP server is removed.

onMCPRequest

Fired before processing an incoming MCP request.

onMCPResponse

Fired after processing and before returning the response.

onMCPError

Fired when an exception occurs.

Registering Event Listeners

Module Registration

In ModuleConfig.bx:

Application Registration

Use BoxRegisterInterceptor():

Practical Examples

Real-Time Dashboard

Custom Metrics

Integration with Monitoring Services

REST API Endpoint

Expose stats via API:

Performance Notes

  • Zero Overhead When Disabled — No impact if statsEnabled: false

  • Memory Efficient — Last 1000 samples retained per metric

  • Thread Safe — Uses atomic operations

  • Real-Time — Stats updated immediately

  • Lightweight SummarygetStatsSummary() optimized for frequent polling

Next Steps

Last updated