MCPcopy Create free account
hub / github.com/modelcontextprotocol/go-sdk / createLoggingMiddleware

Function createLoggingMiddleware

examples/http/logging_middleware.go:16–53  ·  view source on GitHub ↗

createLoggingMiddleware creates an MCP middleware that logs method calls.

()

Source from the content-addressed store, hash-verified

14
15// createLoggingMiddleware creates an MCP middleware that logs method calls.
16func createLoggingMiddleware() mcp.Middleware {
17 return func(next mcp.MethodHandler) mcp.MethodHandler {
18 return func(
19 ctx context.Context,
20 method string,
21 req mcp.Request,
22 ) (mcp.Result, error) {
23 start := time.Now()
24 sessionID := req.GetSession().ID()
25
26 // Log request details.
27 log.Printf("[REQUEST] Session: %s | Method: %s",
28 sessionID,
29 method)
30
31 // Call the actual handler.
32 result, err := next(ctx, method, req)
33
34 // Log response details.
35 duration := time.Since(start)
36
37 if err != nil {
38 log.Printf("[RESPONSE] Session: %s | Method: %s | Status: ERROR | Duration: %v | Error: %v",
39 sessionID,
40 method,
41 duration,
42 err)
43 } else {
44 log.Printf("[RESPONSE] Session: %s | Method: %s | Status: OK | Duration: %v",
45 sessionID,
46 method,
47 duration)
48 }
49
50 return result, err
51 }
52 }
53}

Callers 1

runServerFunction · 0.70

Calls 2

IDMethod · 0.65
GetSessionMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…